Cachet is now a Laravel 5 app

This commit is contained in:
Joseph Cohen
2015-03-20 18:30:45 -06:00
parent 7cfa158e68
commit b4ac66d727
338 changed files with 4164 additions and 4114 deletions
+200
View File
@@ -0,0 +1,200 @@
<?php
namespace CachetHQ\Cachet\Http\Routes;
use Illuminate\Contracts\Routing\Registrar;
class AdminRoutes
{
/**
* Define the dashboard routes.
*
* @param \Illuminate\Contracts\Routing\Registrar $router
*
* @return void
*/
public function map(Registrar $router)
{
$router->group([
'middleware' => 'auth',
'prefix' => 'dashboard',
'namespace' => 'Admin',
], function ($router) {
// Dashboard
$router->get('/', [
'as' => 'dashboard',
'uses' => 'DashboardController@showDashboard',
]);
// Components
$router->group(['prefix' => 'components'], function ($router) {
$router->get('/', [
'as' => 'dashboard.components',
'uses' => 'ComponentController@showComponents',
]);
$router->get('add', [
'as' => 'dashboard.components.add',
'uses' => 'ComponentController@showAddComponent',
]);
$router->post('add', 'ComponentController@createComponentAction');
$router->get('groups', [
'as' => 'dashboard.components.groups',
'uses' => 'ComponentController@showComponentGroups',
]);
$router->get('groups/add', [
'as' => 'dashboard.components.groups.add',
'uses' => 'ComponentController@showAddComponentGroup',
]);
$router->get('groups/edit/{component_group}', [
'as' => 'dashboard.components.groups.edit',
'uses' => 'ComponentController@showEditComponentGroup',
]);
$router->post('groups/edit/{component_group}', 'ComponentController@updateComponentGroupAction');
$router->delete('groups/{component_group}/delete', 'ComponentController@deleteComponentGroupAction');
$router->post('groups/add', 'ComponentController@postAddComponentGroup');
$router->delete('{component}/delete', 'ComponentController@deleteComponentAction');
$router->get('{component}/edit', 'ComponentController@showEditComponent');
$router->post('{component}/edit', 'ComponentController@updateComponentAction');
});
// Incidents
$router->group(['prefix' => 'incidents'], function ($router) {
$router->get('/', [
'as' => 'dashboard.incidents',
'uses' => 'IncidentController@showIncidents',
]);
$router->get('add', [
'as' => 'dashboard.incidents.add',
'uses' => 'IncidentController@showAddIncident',
]);
$router->post('add', 'IncidentController@createIncidentAction');
$router->delete('{incident}/delete', 'IncidentController@deleteIncidentAction');
$router->get('{incident}/edit', 'IncidentController@showEditIncidentAction');
$router->post('{incident}/edit', 'IncidentController@editIncidentAction');
});
// Scheduled Maintenance
$router->group(['prefix' => 'schedule'], function ($router) {
$router->get('/', ['as' => 'dashboard.schedule', 'uses' => 'ScheduleController@showIndex']);
$router->get('add', [
'as' => 'dashboard.schedule.add',
'uses' => 'ScheduleController@showAddSchedule',
]);
$router->post('add', 'ScheduleController@addScheduleAction');
$router->get('{incident}/edit', [
'as' => 'dashboard.schedule.edit',
'uses' => 'ScheduleController@showEditSchedule',
]);
$router->post('{incident}/edit', 'ScheduleController@editScheduleAction');
$router->delete('{incident}/delete', [
'as' => 'dashboard.schedule.delete',
'uses' => 'ScheduleController@deleteScheduleAction',
]);
});
// Incident Templates
$router->group(['prefix' => 'templates'], function ($router) {
$router->get('/', [
'as' => 'dashboard.templates',
'uses' => 'IncidentController@showTemplates',
]);
$router->get('add', [
'as' => 'dashboard.templates.add',
'uses' => 'IncidentController@showAddIncidentTemplate',
]);
$router->post('add', 'IncidentController@createIncidentTemplateAction');
$router->get('{incident_template}/edit', 'IncidentController@showEditTemplateAction');
$router->post('{incident_template}/edit', 'IncidentController@editTemplateAction');
$router->delete('{incident_template}/delete', 'IncidentController@deleteTemplateAction');
});
// Metrics
$router->group(['prefix' => 'metrics'], function ($router) {
$router->get('/', [
'as' => 'dashboard.metrics',
'uses' => 'MetricController@showMetrics',
]);
$router->get('add', [
'as' => 'dashboard.metrics.add',
'uses' => 'MetricController@showAddMetric',
]);
$router->post('add', 'MetricController@createMetricAction');
$router->delete('{metric}/delete', 'MetricController@deleteMetricAction');
$router->get('{metric}/edit', 'MetricController@showEditMetricAction');
$router->post('{metric}/edit', 'MetricController@editMetricAction');
});
// Notifications
$router->group(['prefix' => 'notifications'], function ($router) {
$router->get('/', [
'as' => 'dashboard.notifications',
'uses' => 'DashboardController@showNotifications',
]);
});
// Team Members
$router->group(['prefix' => 'team'], function ($router) {
$router->get('/', [
'as' => 'dashboard.team',
'uses' => 'TeamController@showTeamView',
]);
$router->group(['middleware' => 'admin'], function ($router) {
$router->get('add', [
'as' => 'dashboard.team.add',
'uses' => 'TeamController@showAddTeamMemberView',
]);
$router->get('{user}', 'TeamController@showTeamMemberView');
$router->post('add', 'TeamController@postAddUser');
$router->post('{user}', 'TeamController@postUpdateUser');
});
});
// Settings
$router->group(['prefix' => 'settings'], function ($router) {
$router->get('setup', [
'as' => 'dashboard.settings.setup',
'uses' => 'SettingsController@showSetupView',
]);
$router->get('security', [
'as' => 'dashboard.settings.security',
'uses' => 'SettingsController@showSecurityView',
]);
$router->get('theme', [
'as' => 'dashboard.settings.theme',
'uses' => 'SettingsController@showThemeView',
]);
$router->get('stylesheet', [
'as' => 'dashboard.settings.stylesheet',
'uses' => 'SettingsController@showStylesheetView',
]);
$router->post('/', 'SettingsController@postSettings');
});
// User Settings
$router->group(['prefix' => 'user'], function ($router) {
$router->get('/', [
'as' => 'dashboard.user',
'uses' => 'UserController@showUser',
]);
$router->post('/', 'UserController@postUser');
$router->get('{user}/api/regen', 'UserController@regenerateApiKey');
});
// Internal API.
// This should only be used for making requests within the dashboard.
$router->group(['prefix' => 'api'], function ($router) {
$router->get('incidents/templates', 'APIController@getIncidentTemplate');
$router->post('components/order', 'APIController@postUpdateComponentOrder');
$router->post('components/{component}', 'APIController@postUpdateComponent');
});
});
}
}
+55
View File
@@ -0,0 +1,55 @@
<?php
namespace CachetHQ\Cachet\Http\Routes;
use Illuminate\Contracts\Routing\Registrar;
class ApiRoutes
{
/**
* Define the api routes.
*
* @param \Illuminate\Contracts\Routing\Registrar $router
*
* @return void
*/
public function map(Registrar $router)
{
$router->group([
'middleware' => 'allowedDomains',
'namespace' => 'Api',
'prefix' => 'api/v1',
], function ($router) {
// Components
$router->get('components', 'ComponentController@getComponents');
$router->get('components/{id}', 'ComponentController@getComponent');
// Incidents
$router->get('incidents', 'IncidentController@getIncidents');
$router->get('incidents/{id}', 'IncidentController@getIncident');
// Metrics
$router->get('metrics', 'MetricController@getMetrics');
$router->get('metrics/{id}', 'MetricController@getMetric');
$router->get('metrics/{id}/points', 'MetricController@getMetricPoints');
// Api protected
$router->group(['middleware' => 'auth.api'], function ($router) {
$router->post('components', 'ComponentController@postComponents');
$router->post('incidents', 'IncidentController@postIncidents');
$router->post('metrics', 'MetricController@postMetrics');
$router->post('metrics/{id}/points', 'MetricPointController@postMetricPoints');
$router->put('components/{id}', 'ComponentController@putComponent');
$router->put('incidents/{id}', 'IncidentController@putIncident');
$router->put('metrics/{id}', 'MetricController@putMetric');
$router->put('metrics/{id}/points/{metric_id}', 'MetricPointController@putMetricPoint');
$router->delete('components/{id}', 'ComponentController@deleteComponent');
$router->delete('incidents/{id}', 'IncidentController@deleteIncident');
$router->delete('metrics/{id}', 'MetricController@deleteMetric');
$router->delete('metrics/{id}/points/{metric_id}', 'MetricPointController@deleteMetricPoint');
});
});
}
}
+50
View File
@@ -0,0 +1,50 @@
<?php
namespace CachetHQ\Cachet\Http\Routes;
use Illuminate\Contracts\Routing\Registrar;
class AuthRoutes
{
/**
* Define the auth routes.
*
* @param \Illuminate\Contracts\Routing\Registrar $router
*
* @return void
*/
public function map(Registrar $router)
{
$router->group(['prefix' => 'auth'], function ($router) {
$router->group(['middleware' => 'app.hasSetting', 'setting' => 'app_name'], function ($router) {
// Login routes
$router->get('login', [
'middleware' => 'guest',
'as' => 'login',
'uses' => 'AuthController@showLogin',
]);
$router->post('login', [
'middleware' => ['guest', 'csrf', 'login.throttling'],
'as' => 'logout',
'uses' => 'AuthController@postLogin',
]);
// Two factor authorization
$router->get('2fa', [
'as' => 'two-factor',
'uses' => 'AuthController@showTwoFactorAuth',
]);
$router->post('2fa', 'AuthController@postTwoFactor');
});
$router->group(['middleware' => 'auth'], function ($router) {
$router->get('logout', [
'as' => 'logout',
'uses' => 'AuthController@logoutAction',
]);
});
});
}
}
+22
View File
@@ -0,0 +1,22 @@
<?php
namespace CachetHQ\Cachet\Http\Routes;
use Illuminate\Contracts\Routing\Registrar;
class SetupRoutes
{
/**
* Define the setup routes.
*
* @param \Illuminate\Contracts\Routing\Registrar $router
*
* @return void
*/
public function map(Registrar $router)
{
$router->group(['middleware' => 'app.isSetup'], function ($router) {
$router->controller('setup', 'SetupController');
});
}
}
+28
View File
@@ -0,0 +1,28 @@
<?php
namespace CachetHQ\Cachet\Http\Routes;
use Illuminate\Contracts\Routing\Registrar;
class StatusPageRoutes
{
/**
* Define the status page routes.
*
* @param \Illuminate\Contracts\Routing\Registrar $router
*
* @return void
*/
public function map(Registrar $router)
{
// Prevent access until the app is setup.
$router->group(['middleware' => 'app.hasSetting', 'setting' => 'app_name'], function ($router) {
$router->get('/', [
'as' => 'status-page',
'uses' => 'HomeController@showIndex',
]);
$router->get('/atom', 'AtomController@feedAction');
$router->get('/rss', 'RssController@feedAction');
});
}
}