summaryrefslogtreecommitdiffstats
path: root/non-puppet/qtmetrics2/index.php
diff options
context:
space:
mode:
Diffstat (limited to 'non-puppet/qtmetrics2/index.php')
-rw-r--r--non-puppet/qtmetrics2/index.php114
1 files changed, 112 insertions, 2 deletions
diff --git a/non-puppet/qtmetrics2/index.php b/non-puppet/qtmetrics2/index.php
index 104a819..a7d0290 100644
--- a/non-puppet/qtmetrics2/index.php
+++ b/non-puppet/qtmetrics2/index.php
@@ -34,15 +34,18 @@
/**
* Qt Metrics API
- * @since 05-08-2015
+ * @since 10-08-2015
* @author Juha Sippola
*/
-require_once 'src/Factory.php';
require_once 'lib/Slim/Slim/Slim.php';
require_once 'lib/Slim/Slim/View.php';
+require_once 'lib/Slim/Slim/Middleware.php';
require_once 'lib/Slim/Slim/Views/Twig.php';
require_once 'lib/Twig/lib/Twig/Autoloader.php';
+require_once 'src/Factory.php';
+require_once 'src/HttpBasicAuth.php';
+require_once 'src/HttpBasicAuthRoute.php';
\Slim\Slim::registerAutoloader();
Twig_Autoloader::register();
@@ -483,6 +486,113 @@ $app->get('/sitemap', function() use($app)
));
})->name('sitemap');
+/**
+ * UI route: /admin (GET) - authenticated
+ */
+
+$app->add(new HttpBasicAuthRoute('Protected Area', 'admin'));
+$app->get('/admin', function() use($app)
+{
+ $breadcrumb = array(
+ array('name' => 'home', 'link' => Slim\Slim::getInstance()->urlFor('root'))
+ );
+ $app->render('admin.html', array(
+ 'root' => Slim\Slim::getInstance()->urlFor('root'),
+ 'breadcrumb' => $breadcrumb,
+ 'adminRoute' => Slim\Slim::getInstance()->urlFor('admin'),
+ 'adminBranchesRoute' => Slim\Slim::getInstance()->urlFor('admin_branches'),
+ 'adminDataRoute' => Slim\Slim::getInstance()->urlFor('admin_data'),
+ 'tables' => Factory::dbAdmin()->getTablesStatistics()
+ ));
+})->name('admin');
+
+/**
+ * UI route: /admin/branches (GET) - authenticated
+ */
+
+$app->add(new HttpBasicAuthRoute('Protected Area', 'admin/branches'));
+$app->get('/admin/branches', function() use($app)
+{
+ $breadcrumb = array(
+ array('name' => 'home', 'link' => Slim\Slim::getInstance()->urlFor('root')),
+ array('name' => 'admin', 'link' => Slim\Slim::getInstance()->urlFor('admin'))
+ );
+ $app->render('admin_branches.html', array(
+ 'root' => Slim\Slim::getInstance()->urlFor('root'),
+ 'breadcrumb' => $breadcrumb,
+ 'adminRoute' => Slim\Slim::getInstance()->urlFor('admin'),
+ 'adminBranchesRoute' => Slim\Slim::getInstance()->urlFor('admin_branches'),
+ 'adminDataRoute' => Slim\Slim::getInstance()->urlFor('admin_data'),
+ 'branches' => Factory::dbAdmin()->getBranchesStatistics()
+ ));
+})->name('admin_branches');
+
+/**
+ * UI route: /admin/data (GET) - authenticated
+ */
+
+$app->add(new HttpBasicAuthRoute('Protected Area', 'admin/data'));
+$app->get('/admin/data', function() use($app)
+{
+ $breadcrumb = array(
+ array('name' => 'home', 'link' => Slim\Slim::getInstance()->urlFor('root')),
+ array('name' => 'admin', 'link' => Slim\Slim::getInstance()->urlFor('admin'))
+ );
+ $app->render('admin_data.html', array(
+ 'root' => Slim\Slim::getInstance()->urlFor('root'),
+ 'breadcrumb' => $breadcrumb,
+ 'adminRoute' => Slim\Slim::getInstance()->urlFor('admin'),
+ 'adminBranchesRoute' => Slim\Slim::getInstance()->urlFor('admin_branches'),
+ 'adminDataRoute' => Slim\Slim::getInstance()->urlFor('admin_data'),
+ 'projectRuns' => Factory::dbAdmin()->getProjectRunsStatistics()
+ ));
+})->name('admin_data');
+
+/**
+ * API route: /api/branch (DELETE) - authenticated
+ */
+
+$app->add(new HttpBasicAuthRoute('Protected Area', 'api/branch'));
+$app->delete('/api/branch/:branch', function($branch) use($app)
+{
+ $branch = strip_tags($branch);
+ $branches = array();
+ $query = Factory::db()->getBranches();
+ foreach($query as $item) {
+ $branches[] = $item['name'];
+ }
+ if (in_array($branch, $branches)) {
+ $result = Factory::dbAdmin()->deleteBranch($branch);
+ if ($result)
+ $app->response()->status(200);
+ else
+ $app->response()->status(404);
+ } else {
+ $app->response()->status(404);
+ }
+})->name('delete_branch');
+
+/**
+ * API route: /api/data (DELETE) - authenticated
+ */
+
+$app->add(new HttpBasicAuthRoute('Protected Area', 'api/data'));
+$app->delete('/api/data/:state/:date', function($state, $date) use($app)
+{
+ $state = strip_tags($state);
+ $date = strip_tags($date);
+ $result = Factory::dbAdmin()->deleteRunsData($state, $date);
+ if ($result)
+ $app->response()->status(200);
+ else
+ $app->response()->status(404);
+})->name('delete_data');
+
+
+/**
+ * Start Slim
+ */
+
$app->run();