From 0ccb5e289c622e193a07cdb298727cd5d2cff3d8 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Fri, 2 Jan 2015 00:18:19 +0000 Subject: [PATCH] Namespaced models and refactored filters --- app/config/app.php | 3 +- app/database/seeds/ComponentTableSeeder.php | 1 + app/database/seeds/IncidentTableSeeder.php | 1 + app/database/seeds/SettingsTableSeeder.php | 1 + app/database/seeds/UsersTableSeeder.php | 1 + app/filters.php | 66 ------------------- app/filters/CORSFilter.php | 11 ---- app/routes.php | 8 --- app/routes/api.php | 2 +- app/routes/app.php | 6 +- app/routes/auth.php | 4 +- app/routes/dashboard.php | 2 +- app/start/global.php | 11 ++-- app/view-composers.php | 2 + bootstrap/start.php | 3 +- composer.json | 9 +-- composer.lock | 2 +- phpunit.xml | 4 +- .../Commands/OneClickDeployCommand.php | 2 +- .../Http/After}/AllowedDomainsFilter.php | 9 ++- src/Http/After/CorsFilter.php | 17 +++++ src/Http/Before/AuthBasicFilter.php | 13 ++++ src/Http/Before/AuthFilter.php | 23 +++++++ src/Http/Before/CsrfFilter.php | 17 +++++ src/Http/Before/GuestFilter.php | 16 +++++ .../Http/Before}/HasSettingFilter.php | 10 ++- .../Http/Before}/IsSetupFilter.php | 10 ++- .../Http/Before}/LoginThrottlingFilter.php | 7 +- .../Controllers/Api/ComponentController.php | 10 +-- .../Controllers/Api/IncidentController.php | 8 +-- .../Controllers/Api/MetricController.php | 8 +-- .../Controllers/Api/MetricPointController.php | 6 +- src/{ => Http}/Controllers/AuthController.php | 2 +- .../Controllers/DashAPIController.php | 8 +-- .../Controllers/DashComponentController.php | 10 +-- .../Controllers/DashIncidentController.php | 8 +-- .../Controllers/DashSettingsController.php | 4 +- .../Controllers/DashUserController.php | 2 +- .../Controllers/DashboardController.php | 4 +- src/{ => Http}/Controllers/HomeController.php | 8 +-- src/{ => Http}/Controllers/RssController.php | 6 +- .../Controllers/SetupController.php | 6 +- {app/models => src/Models}/Component.php | 4 +- {app/models => src/Models}/Incident.php | 4 +- .../Models}/IncidentTemplate.php | 2 + {app/models => src/Models}/Metric.php | 4 +- {app/models => src/Models}/MetricPoint.php | 4 +- {app/models => src/Models}/Service.php | 2 + {app/models => src/Models}/Setting.php | 2 + {app/models => src/Models}/Subscriber.php | 2 + {app/models => src/Models}/User.php | 2 + {app/models => src/Models}/WebHook.php | 12 ++-- .../models => src/Models}/WebHookResponse.php | 2 + src/Providers/ConsoleServiceProvider.php | 6 +- src/Providers/RoutingServiceProvider.php | 34 ++++++++++ .../Component/EloquentComponentRepository.php | 6 +- .../Incident/EloquentIncidentRepository.php | 6 +- .../Metric/EloquentMetricRepository.php | 6 +- .../EloquentMetricPointRepository.php | 6 +- src/Transformers/ComponentTransformer.php | 9 ++- src/Transformers/IncidentTransformer.php | 9 ++- src/Transformers/MetricPointTransformer.php | 9 ++- src/Transformers/MetricTransformer.php | 9 ++- {app => src}/helpers.php | 8 ++- .../Api/ComponentControllerTest.php | 4 +- {app/tests => tests}/TestCase.php | 2 +- 66 files changed, 310 insertions(+), 195 deletions(-) delete mode 100644 app/filters.php delete mode 100644 app/filters/CORSFilter.php delete mode 100644 app/routes.php rename src/{ => Console}/Commands/OneClickDeployCommand.php (97%) rename {app/filters => src/Http/After}/AllowedDomainsFilter.php (67%) create mode 100644 src/Http/After/CorsFilter.php create mode 100644 src/Http/Before/AuthBasicFilter.php create mode 100644 src/Http/Before/AuthFilter.php create mode 100644 src/Http/Before/CsrfFilter.php create mode 100644 src/Http/Before/GuestFilter.php rename {app/filters => src/Http/Before}/HasSettingFilter.php (53%) rename {app/filters => src/Http/Before}/IsSetupFilter.php (53%) rename {app/filters => src/Http/Before}/LoginThrottlingFilter.php (67%) rename src/{ => Http}/Controllers/Api/ComponentController.php (87%) rename src/{ => Http}/Controllers/Api/IncidentController.php (88%) rename src/{ => Http}/Controllers/Api/MetricController.php (88%) rename src/{ => Http}/Controllers/Api/MetricPointController.php (89%) rename src/{ => Http}/Controllers/AuthController.php (96%) rename src/{ => Http}/Controllers/DashAPIController.php (83%) rename src/{ => Http}/Controllers/DashComponentController.php (89%) rename src/{ => Http}/Controllers/DashIncidentController.php (91%) rename src/{ => Http}/Controllers/DashSettingsController.php (98%) rename src/{ => Http}/Controllers/DashUserController.php (94%) rename src/{ => Http}/Controllers/DashboardController.php (92%) rename src/{ => Http}/Controllers/HomeController.php (87%) rename src/{ => Http}/Controllers/RssController.php (91%) rename src/{ => Http}/Controllers/SetupController.php (95%) rename {app/models => src/Models}/Component.php (94%) rename {app/models => src/Models}/Incident.php (95%) rename {app/models => src/Models}/IncidentTemplate.php (95%) rename {app/models => src/Models}/Metric.php (91%) rename {app/models => src/Models}/MetricPoint.php (68%) rename {app/models => src/Models}/Service.php (96%) rename {app/models => src/Models}/Setting.php (95%) rename {app/models => src/Models}/Subscriber.php (93%) rename {app/models => src/Models}/User.php (97%) rename {app/models => src/Models}/WebHook.php (89%) rename {app/models => src/Models}/WebHookResponse.php (90%) rename {app => src}/helpers.php (83%) rename {app/tests => tests}/Controllers/Api/ComponentControllerTest.php (80%) rename {app/tests => tests}/TestCase.php (83%) diff --git a/app/config/app.php b/app/config/app.php index 3e08dfab..08a47e6f 100644 --- a/app/config/app.php +++ b/app/config/app.php @@ -157,17 +157,16 @@ return [ 'aliases' => [ - 'API' => 'Dingo\Api\Facade\API', 'App' => 'Illuminate\Support\Facades\App', 'Auth' => 'Illuminate\Support\Facades\Auth', 'Form' => 'Illuminate\Support\Facades\Form', - 'HTML' => 'Illuminate\Support\Facades\HTML', 'Input' => 'Illuminate\Support\Facades\Input', 'Redirect' => 'Illuminate\Support\Facades\Redirect', 'Request' => 'Illuminate\Support\Facades\Request', 'Response' => 'Illuminate\Support\Facades\Response', 'Route' => 'Illuminate\Support\Facades\Route', 'Session' => 'Illuminate\Support\Facades\Session', + 'Setting' => 'CachetHQ\Cachet\Models\Setting', 'Str' => 'Illuminate\Support\Str', ], diff --git a/app/database/seeds/ComponentTableSeeder.php b/app/database/seeds/ComponentTableSeeder.php index d65eb63b..3bddf05e 100644 --- a/app/database/seeds/ComponentTableSeeder.php +++ b/app/database/seeds/ComponentTableSeeder.php @@ -1,5 +1,6 @@ headers->set('Access-Control-Allow-Origin', '*'); - - return $response; - } -} diff --git a/app/routes.php b/app/routes.php deleted file mode 100644 index 7b941a91..00000000 --- a/app/routes.php +++ /dev/null @@ -1,8 +0,0 @@ - 'allowed_domains', 'namespace' => 'CachetHQ\Cachet\Controllers\Api', 'version' => 'v1'], function () { +Route::api(['after' => 'allowed_domains', 'namespace' => 'CachetHQ\Cachet\Http\Controllers\Api', 'version' => 'v1'], function () { Route::get('components', 'ComponentController@getComponents'); Route::get('components/{id}', 'ComponentController@getComponent'); Route::get('components/{id}/incidents', 'ComponentController@getComponentIncidents'); diff --git a/app/routes/app.php b/app/routes/app.php index 0705560c..496cab35 100644 --- a/app/routes/app.php +++ b/app/routes/app.php @@ -1,16 +1,16 @@ 'has_setting:app_name', 'namespace' => 'CachetHQ\Cachet\Controllers'], function () { +Route::group(['before' => 'has_setting:app_name', 'namespace' => 'CachetHQ\Cachet\Http\Controllers'], function () { Route::get('/', ['as' => 'status-page', 'uses' => 'HomeController@showIndex']); Route::get('/incident/{incident}', 'HomeController@showIncident'); }); // Setup route. -Route::group(['before' => 'is_setup', 'namespace' => 'CachetHQ\Cachet\Controllers'], function () { +Route::group(['before' => 'is_setup', 'namespace' => 'CachetHQ\Cachet\Http\Controllers'], function () { Route::controller('/setup', 'SetupController'); }); -Route::group(['namespace' => 'CachetHQ\Cachet\Controllers'], function () { +Route::group(['namespace' => 'CachetHQ\Cachet\Http\Controllers'], function () { Route::get('/rss', 'RssController@feedAction'); }); diff --git a/app/routes/auth.php b/app/routes/auth.php index bc5eb71e..768af167 100644 --- a/app/routes/auth.php +++ b/app/routes/auth.php @@ -1,10 +1,10 @@ 'has_setting:app_name', 'namespace' => 'CachetHQ\Cachet\Controllers'], function () { +Route::group(['before' => 'has_setting:app_name', 'namespace' => 'CachetHQ\Cachet\Http\Controllers'], function () { Route::get('/auth/login', ['before' => 'guest', 'as' => 'login', 'uses' => 'AuthController@showLogin']); Route::post('/auth/login', ['before' => 'guest|csrf|login_throttling', 'as' => 'logout', 'uses' => 'AuthController@postLogin']); }); -Route::group(['before' => 'auth', 'namespace' => 'CachetHQ\Cachet\Controllers'], function () { +Route::group(['before' => 'auth', 'namespace' => 'CachetHQ\Cachet\Http\Controllers'], function () { Route::get('/auth/logout', ['as' => 'logout', 'uses' => 'AuthController@logoutAction']); }); diff --git a/app/routes/dashboard.php b/app/routes/dashboard.php index 96c8dc46..449730fe 100644 --- a/app/routes/dashboard.php +++ b/app/routes/dashboard.php @@ -1,6 +1,6 @@ 'auth', 'prefix' => 'dashboard', 'namespace' => 'CachetHQ\Cachet\Controllers'], function () { +Route::group(['before' => 'auth', 'prefix' => 'dashboard', 'namespace' => 'CachetHQ\Cachet\Http\Controllers'], function () { // Dashboard Route::get('/', ['as' => 'dashboard', 'uses' => 'DashboardController@showDashboard']); diff --git a/app/start/global.php b/app/start/global.php index 42b3e59e..2d046af7 100644 --- a/app/start/global.php +++ b/app/start/global.php @@ -1,5 +1,6 @@ bindInstallPaths(require __DIR__.'/paths.php'); | */ -$framework = $app['path.base']. - '/vendor/laravel/framework/src'; +$framework = $app['path.base'].'/vendor/laravel/framework/src'; require $framework.'/Illuminate/Foundation/start.php'; diff --git a/composer.json b/composer.json index b2a16a1a..cc0c4316 100644 --- a/composer.json +++ b/composer.json @@ -28,9 +28,10 @@ "autoload": { "classmap": [ "app/database/migrations", - "app/database/seeds", - "app/filters", - "app/models" + "app/database/seeds" + ], + "files": [ + "src/helpers.php" ], "psr-4": { "CachetHQ\\Cachet\\": "src/" @@ -38,7 +39,7 @@ }, "autoload-dev": { "classmap": [ - "app/tests/TestCase.php" + "tests/TestCase.php" ] }, "extra": { diff --git a/composer.lock b/composer.lock index 435b5478..11dc9fd5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "af0ee6e5bc07e350732bc7c907e3b2ae", + "hash": "bb692ec0057ca30fa36edd005963b3cb", "packages": [ { "name": "classpreloader/classpreloader", diff --git a/phpunit.xml b/phpunit.xml index b60b43d4..0065cf7e 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -15,14 +15,12 @@ > - ./app/tests/ + ./tests ./src - ./app/filters - ./app/models diff --git a/src/Commands/OneClickDeployCommand.php b/src/Console/Commands/OneClickDeployCommand.php similarity index 97% rename from src/Commands/OneClickDeployCommand.php rename to src/Console/Commands/OneClickDeployCommand.php index 1621eb60..78a1dfc5 100644 --- a/src/Commands/OneClickDeployCommand.php +++ b/src/Console/Commands/OneClickDeployCommand.php @@ -1,6 +1,6 @@ headers->set('Access-Control-Allow-Origin', '*'); + + return $response; + } +} diff --git a/src/Http/Before/AuthBasicFilter.php b/src/Http/Before/AuthBasicFilter.php new file mode 100644 index 00000000..599f6223 --- /dev/null +++ b/src/Http/Before/AuthBasicFilter.php @@ -0,0 +1,13 @@ +ajax()) { + return Response::make('Unauthorized', 401); + } else { + return Redirect::guest('auth/login'); + } + } + } +} diff --git a/src/Http/Before/CsrfFilter.php b/src/Http/Before/CsrfFilter.php new file mode 100644 index 00000000..50bfa83f --- /dev/null +++ b/src/Http/Before/CsrfFilter.php @@ -0,0 +1,17 @@ +first(); diff --git a/app/filters/IsSetupFilter.php b/src/Http/Before/IsSetupFilter.php similarity index 53% rename from app/filters/IsSetupFilter.php rename to src/Http/Before/IsSetupFilter.php index 3eb44886..b8f1a2a9 100644 --- a/app/filters/IsSetupFilter.php +++ b/src/Http/Before/IsSetupFilter.php @@ -1,8 +1,16 @@ first(); diff --git a/app/filters/LoginThrottlingFilter.php b/src/Http/Before/LoginThrottlingFilter.php similarity index 67% rename from app/filters/LoginThrottlingFilter.php rename to src/Http/Before/LoginThrottlingFilter.php index 80b3dc86..5b3a6e48 100644 --- a/app/filters/LoginThrottlingFilter.php +++ b/src/Http/Before/LoginThrottlingFilter.php @@ -1,10 +1,15 @@ hasMany('Incident', 'component_id', 'id'); + return $this->hasMany('CachetHQ\Cachet\Models\Incident', 'component_id', 'id'); } /** diff --git a/app/models/Incident.php b/src/Models/Incident.php similarity index 95% rename from app/models/Incident.php rename to src/Models/Incident.php index 8753f723..0c1996bc 100644 --- a/app/models/Incident.php +++ b/src/Models/Incident.php @@ -1,5 +1,7 @@ belongsTo('Component', 'component_id', 'id'); + return $this->belongsTo('CachetHQ\Cachet\Models\Component', 'component_id', 'id'); } /** diff --git a/app/models/IncidentTemplate.php b/src/Models/IncidentTemplate.php similarity index 95% rename from app/models/IncidentTemplate.php rename to src/Models/IncidentTemplate.php index 137b2f25..8aad1502 100644 --- a/app/models/IncidentTemplate.php +++ b/src/Models/IncidentTemplate.php @@ -1,5 +1,7 @@ hasMany('MetricPoint', 'metric_id', 'id'); + return $this->hasMany('CachetHQ\Cachet\Models\MetricPoint', 'metric_id', 'id'); } /** diff --git a/app/models/MetricPoint.php b/src/Models/MetricPoint.php similarity index 68% rename from app/models/MetricPoint.php rename to src/Models/MetricPoint.php index 463f10e5..863ac57e 100644 --- a/app/models/MetricPoint.php +++ b/src/Models/MetricPoint.php @@ -1,5 +1,7 @@ belongsTo('Metric', 'id', 'metric_id'); + return $this->belongsTo('CachetHQ\Cachet\Models\Metric', 'id', 'metric_id'); } } diff --git a/app/models/Service.php b/src/Models/Service.php similarity index 96% rename from app/models/Service.php rename to src/Models/Service.php index dc58ba70..d3e233af 100644 --- a/app/models/Service.php +++ b/src/Models/Service.php @@ -1,5 +1,7 @@ commands('CachetHQ\Cachet\Commands\OneClickDeployCommand'); + $this->commands('CachetHQ\Cachet\Console\Commands\OneClickDeployCommand'); } /** @@ -24,7 +24,7 @@ class ConsoleServiceProvider extends ServiceProvider */ public function register() { - $this->app->singleton('CachetHQ\Cachet\Commands\OneClickDeployCommand', function ($app) { + $this->app->singleton('CachetHQ\Cachet\Console\Commands\OneClickDeployCommand', function ($app) { return new OneClickDeployCommand($app->environment('heroku')); }); } diff --git a/src/Providers/RoutingServiceProvider.php b/src/Providers/RoutingServiceProvider.php index 97011fd3..32219fb7 100644 --- a/src/Providers/RoutingServiceProvider.php +++ b/src/Providers/RoutingServiceProvider.php @@ -12,6 +12,40 @@ class RoutingServiceProvider extends ServiceProvider * @return void */ public function boot() + { + $this->registerFilters(); + $this->registerBindings(); + $this->registerRoutes(); + } + + protected function registerFilters() + { + // Laravel's before filters + $this->app->router->filter('auth', 'CachetHQ\Cachet\Http\Before\AuthFilter'); + $this->app->router->filter('auth.basic', 'CachetHQ\Cachet\Http\Before\AuthBasicFilter'); + $this->app->router->filter('guest', 'CachetHQ\Cachet\Http\Before\GuestFilter'); + $this->app->router->filter('csrf', 'CachetHQ\Cachet\Http\Before\CsrfFilter'); + + // Cachet's before filters + $this->app->router->filter('is_setup', 'CachetHQ\Cachet\Http\Before\IsSetupFilter'); + $this->app->router->filter('has_setting', 'CachetHQ\Cachet\Http\Before\HasSettingFilter'); + $this->app->router->filter('login_throttling', 'CachetHQ\Cachet\Http\Before\LoginThrottlingFilter'); + + // Cachet's after filters + $this->app->router->filter('allowed_domains', 'CachetHQ\Cachet\Http\After\AllowedDomainsFilter'); + $this->app->router->filter('cors', 'CachetHQ\Cachet\Http\After\CorsFilter'); + } + + protected function registerBindings() + { + $this->app->router->model('component', 'CachetHQ\Cachet\Models\Component'); + $this->app->router->model('incident', 'CachetHQ\Cachet\Models\Incident'); + $this->app->router->model('incident_template', 'CachetHQ\Cachet\Models\IncidentTemplate'); + $this->app->router->model('setting', 'CachetHQ\Cachet\Models\Setting'); + $this->app->router->model('user', 'CachetHQ\Cachet\Models\User'); + } + + protected function registerRoutes() { $files = glob(app_path('routes').'/*.php'); diff --git a/src/Repositories/Component/EloquentComponentRepository.php b/src/Repositories/Component/EloquentComponentRepository.php index e443f0e1..7420fff6 100644 --- a/src/Repositories/Component/EloquentComponentRepository.php +++ b/src/Repositories/Component/EloquentComponentRepository.php @@ -2,22 +2,22 @@ namespace CachetHQ\Cachet\Repositories\Component; +use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Repositories\EloquentRepository; -use Component; class EloquentComponentRepository extends EloquentRepository implements ComponentRepository { /** * The eloquent model instance. * - * @var \Component + * @var \CachetHQ\Cachet\Models\Component */ protected $model; /** * Create a new eloquent component repository instance. * - * @param \Component $model + * @param \CachetHQ\Cachet\Models\Component $model * * @return void */ diff --git a/src/Repositories/Incident/EloquentIncidentRepository.php b/src/Repositories/Incident/EloquentIncidentRepository.php index 38b77120..f5bcf30a 100644 --- a/src/Repositories/Incident/EloquentIncidentRepository.php +++ b/src/Repositories/Incident/EloquentIncidentRepository.php @@ -2,22 +2,22 @@ namespace CachetHQ\Cachet\Repositories\Incident; +use CachetHQ\Cachet\Models\Incident; use CachetHQ\Cachet\Repositories\EloquentRepository; -use Incident; class EloquentIncidentRepository extends EloquentRepository implements IncidentRepository { /** * The eloquent model instance. * - * @var \Incident + * @var \CachetHQ\Cachet\Models\Incident */ protected $model; /** * Create a new eloquent incident repository instance. * - * @param \Incident $model + * @param \CachetHQ\Cachet\Models\Incident $model * * @return void */ diff --git a/src/Repositories/Metric/EloquentMetricRepository.php b/src/Repositories/Metric/EloquentMetricRepository.php index 961d5da2..c72ab0f5 100644 --- a/src/Repositories/Metric/EloquentMetricRepository.php +++ b/src/Repositories/Metric/EloquentMetricRepository.php @@ -2,22 +2,22 @@ namespace CachetHQ\Cachet\Repositories\Metric; +use CachetHQ\Cachet\Models\Metric; use CachetHQ\Cachet\Repositories\EloquentRepository; -use Metric; class EloquentMetricRepository extends EloquentRepository implements MetricRepository { /** * The eloquent model instance. * - * @var \Metric + * @var \CachetHQ\Cachet\Models\Metric */ protected $model; /** * Create a new eloquent metric repository instance. * - * @param \Metric $model + * @param \CachetHQ\Cachet\Models\Metric $model * * @return void */ diff --git a/src/Repositories/MetricPoint/EloquentMetricPointRepository.php b/src/Repositories/MetricPoint/EloquentMetricPointRepository.php index 17d54779..3118f9b6 100644 --- a/src/Repositories/MetricPoint/EloquentMetricPointRepository.php +++ b/src/Repositories/MetricPoint/EloquentMetricPointRepository.php @@ -2,22 +2,22 @@ namespace CachetHQ\Cachet\Repositories\MetricPoint; +use CachetHQ\Cachet\Models\MetricPoint; use CachetHQ\Cachet\Repositories\EloquentRepository; -use MetricPoint; class EloquentMetricPointRepository extends EloquentRepository implements MetricPointRepository { /** * The eloquent model instance. * - * @var \MetricPoint + * @var \CachetHQ\Cachet\Models\MetricPoint */ protected $model; /** * Create a new eloquent metric point repository instance. * - * @param \MetricPoint $model + * @param \CachetHQ\Cachet\Models\MetricPoint $model * * @return void */ diff --git a/src/Transformers/ComponentTransformer.php b/src/Transformers/ComponentTransformer.php index b67984a6..4f18f93f 100644 --- a/src/Transformers/ComponentTransformer.php +++ b/src/Transformers/ComponentTransformer.php @@ -2,11 +2,18 @@ namespace CachetHQ\Cachet\Transformers; -use Component; +use CachetHQ\Cachet\Models\Component; use League\Fractal\TransformerAbstract; class ComponentTransformer extends TransformerAbstract { + /** + * Transform a component model into an array. + * + * @param \CachetHQ\Cachet\Models\Component $component + * + * @return array + */ public function transform(Component $component) { return [ diff --git a/src/Transformers/IncidentTransformer.php b/src/Transformers/IncidentTransformer.php index 50bf7c82..1c89da5a 100644 --- a/src/Transformers/IncidentTransformer.php +++ b/src/Transformers/IncidentTransformer.php @@ -2,11 +2,18 @@ namespace CachetHQ\Cachet\Transformers; -use Incident; +use CachetHQ\Cachet\Models\Incident; use League\Fractal\TransformerAbstract; class IncidentTransformer extends TransformerAbstract { + /** + * Transform an incident model into an array. + * + * @param \CachetHQ\Cachet\Models\Incident $incident + * + * @return array + */ public function transform(Incident $incident) { $component = $incident->component; diff --git a/src/Transformers/MetricPointTransformer.php b/src/Transformers/MetricPointTransformer.php index def60b3b..b7b6ab1a 100644 --- a/src/Transformers/MetricPointTransformer.php +++ b/src/Transformers/MetricPointTransformer.php @@ -2,11 +2,18 @@ namespace CachetHQ\Cachet\Transformers; +use CachetHQ\Cachet\Models\MetricPoint; use League\Fractal\TransformerAbstract; -use MetricPoint; class MetricPointTransformer extends TransformerAbstract { + /** + * Transform a metric point model into an array. + * + * @param \CachetHQ\Cachet\Models\MetricPoint $metricPoint + * + * @return array + */ public function transform(MetricPoint $metricPoint) { return [ diff --git a/src/Transformers/MetricTransformer.php b/src/Transformers/MetricTransformer.php index caef7f60..a9fc879a 100644 --- a/src/Transformers/MetricTransformer.php +++ b/src/Transformers/MetricTransformer.php @@ -2,11 +2,18 @@ namespace CachetHQ\Cachet\Transformers; +use CachetHQ\Cachet\Models\Metric; use League\Fractal\TransformerAbstract; -use Metric; class MetricTransformer extends TransformerAbstract { + /** + * Transform a metric model into an array. + * + * @param \CachetHQ\Cachet\Models\Metric $metric + * + * @return array + */ public function transform(Metric $metric) { return [ diff --git a/app/helpers.php b/src/helpers.php similarity index 83% rename from app/helpers.php rename to src/helpers.php index a7a5e9e4..689ef843 100644 --- a/app/helpers.php +++ b/src/helpers.php @@ -1,6 +1,8 @@ repo->shouldReceive('all')->once()->andReturn('foo'); - $controller = new CachetHQ\Cachet\Controllers\Api\ComponentController($this->repo); + $controller = new CachetHQ\Cachet\Http\Controllers\Api\ComponentController($this->repo); $response = $controller->getComponents(); $this->assertEquals('foo', $response); @@ -27,7 +27,7 @@ class ComponentControllerTest extends TestCase { $this->repo->shouldReceive('findOrFail')->with(1)->once()->andReturn('foo'); - $controller = new CachetHQ\Cachet\Controllers\Api\ComponentController($this->repo); + $controller = new CachetHQ\Cachet\Http\Controllers\Api\ComponentController($this->repo); $response = $controller->getComponent(1); $this->assertEquals('foo', $response); diff --git a/app/tests/TestCase.php b/tests/TestCase.php similarity index 83% rename from app/tests/TestCase.php rename to tests/TestCase.php index 76f47391..3e9f0ac6 100644 --- a/app/tests/TestCase.php +++ b/tests/TestCase.php @@ -13,6 +13,6 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase $testEnvironment = 'testing'; - return require __DIR__.'/../../bootstrap/start.php'; + return require __DIR__.'/../bootstrap/start.php'; } }