diff --git a/app/Cachet/Repositories/Component/EloquentComponentRepository.php b/app/Cachet/Repositories/Component/EloquentComponentRepository.php deleted file mode 100644 index 91c6cd6f..00000000 --- a/app/Cachet/Repositories/Component/EloquentComponentRepository.php +++ /dev/null @@ -1,9 +0,0 @@ -app->bind('Cachet\Repositories\Component\ComponentRepository', 'Cachet\Repositories\Component\EloquentComponentRepository'); - } - -} \ No newline at end of file diff --git a/app/CachetHq/Cachet/Controllers/Api/ComponentController.php b/app/CachetHq/Cachet/Controllers/Api/ComponentController.php new file mode 100644 index 00000000..3e9ef024 --- /dev/null +++ b/app/CachetHq/Cachet/Controllers/Api/ComponentController.php @@ -0,0 +1,61 @@ +auth = $auth; + $this->component = $component; + } + + /** + * Get all components + * + * @return \Illuminate\Database\Eloquent\Collection + */ + public function getComponents() { + return $this->component->all(); + } + + /** + * Get a single component + * + * @param int $id + * + * @return Component + */ + public function getComponent($id) { + return $this->component->findOrFail($id); + } + + public function getComponentIncidents($id) { + return $this->component->incidents($id); + } + + /** + * Create a new component + * + * @return Component + */ + public function postComponents() { + $component = new Component(Input::all()); + $component->user_id = $this->auth->user()->id; + if ($component->isValid()) { + try { + $component->saveOrFail(); + return $component; + } catch (Exception $e) { + App::abort(500, $e->getMessage()); + } + } else { + App::abort(404, $component->getErrors()->first()); + } + } +} diff --git a/app/Cachet/Repositories/Component/ComponentRepository.php b/app/CachetHq/Cachet/Repositories/Component/ComponentRepository.php similarity index 69% rename from app/Cachet/Repositories/Component/ComponentRepository.php rename to app/CachetHq/Cachet/Repositories/Component/ComponentRepository.php index 1a239c67..ce8f15fe 100644 --- a/app/Cachet/Repositories/Component/ComponentRepository.php +++ b/app/CachetHq/Cachet/Repositories/Component/ComponentRepository.php @@ -1,4 +1,4 @@ -app->bind('CachetHq\Cachet\Repositories\Component\ComponentRepository', 'CachetHq\Cachet\Repositories\Component\EloquentComponentRepository'); + } + +} \ No newline at end of file diff --git a/app/config/app.php b/app/config/app.php index 36d5d287..4e16e1e0 100644 --- a/app/config/app.php +++ b/app/config/app.php @@ -124,7 +124,7 @@ return array( 'Dingo\Api\ApiServiceProvider', - 'Cachet\Support\ServiceProviders\RepositoryServiceProvider', + 'CachetHq\Cachet\Support\ServiceProviders\RepositoryServiceProvider', ), diff --git a/app/controllers/api/ComponentController.php b/app/controllers/api/ComponentController.php index 5a1ad843..3ec64ae6 100644 --- a/app/controllers/api/ComponentController.php +++ b/app/controllers/api/ComponentController.php @@ -1,6 +1,6 @@ - 'v1', 'prefix' => 'api'], function() { + Route::api(['version' => 'v1', 'prefix' => 'api', 'namespace' => 'Cachet\Controllers\Api'], function() { - Route::get('components', 'ApiController@getComponents'); - Route::get('components/{id}', 'ApiController@getComponent'); - Route::get('components/{id}/incidents', 'ApiController@getComponentIncidents'); - Route::get('incidents', 'ApiController@getIncidents'); - Route::get('incidents/{id}', 'ApiController@getIncident'); - Route::get('metrics', 'ApiController@getMetrics'); - Route::get('metrics/{id}', 'ApiController@getMetric'); + Route::get('components', 'ComponentController@getComponents'); + Route::get('components/{id}', 'ComponentController@getComponent'); + Route::get('components/{id}/incidents', 'ComponentController@getComponentIncidents'); + Route::get('incidents', 'IncidentController@getIncidents'); + Route::get('incidents/{id}', 'IncidentController@getIncident'); + Route::get('metrics', 'IncidentController@getMetrics'); + Route::get('metrics/{id}', 'IncidentController@getMetric'); Route::group(['protected' => true], function() { - Route::post('components', 'ApiController@postComponents'); - Route::post('incidents', 'ApiController@postIncidents'); - Route::post('metrics', 'ApiController@postMetrics'); + Route::post('components', 'ComponentController@postComponents'); + Route::post('incidents', 'IncidentController@postIncidents'); + Route::post('metrics', 'IncidentController@postMetrics'); - Route::put('components/{id}', 'ApiController@putComponent'); - Route::put('incidents/{id}', 'ApiController@putIncident'); - Route::put('metrics/{id}', 'ApiController@putMetric'); + Route::put('components/{id}', 'ComponentController@putComponent'); + Route::put('incidents/{id}', 'IncidentController@putIncident'); + Route::put('metrics/{id}', 'IncidentController@putMetric'); }); }); diff --git a/composer.json b/composer.json index d33b3b98..99e44f29 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "app/filters" ], "psr-4": { - "Cachet\\": "app/Cachet" + "CachetHq\\": "app/CachetHq" } }, "extra": {