From c60f1bd50f5136bfca562f64872da6e3a2754bad Mon Sep 17 00:00:00 2001 From: TakeMeNL Date: Fri, 20 Jul 2018 00:17:46 +0200 Subject: [PATCH] Added GET incident templates to use in POST incidents template --- .../Api/IncidentTemplateController.php | 51 +++++++++++++++++++ app/Http/Routes/ApiRoutes.php | 5 +- tests/Api/IncidentTemplateTest.php | 41 +++++++++++++++ 3 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/Api/IncidentTemplateController.php create mode 100644 tests/Api/IncidentTemplateTest.php diff --git a/app/Http/Controllers/Api/IncidentTemplateController.php b/app/Http/Controllers/Api/IncidentTemplateController.php new file mode 100644 index 00000000..b4f73358 --- /dev/null +++ b/app/Http/Controllers/Api/IncidentTemplateController.php @@ -0,0 +1,51 @@ +sort($sortBy, $direction); + } + + $templates = $templates->paginate(Binput::get('per_page', 20)); + + return $this->paginator($templates, Request::instance()); + } + + /** + * Get a single incident templates. + * + * @param \CachetHQ\Cachet\Models\IncidentTemplate $incidentTemplate + * + * @return \Illuminate\Http\JsonResponse + */ + public function show(IncidentTemplate $incidentTemplate) + { + return $this->item($incidentTemplate); + } +} diff --git a/app/Http/Routes/ApiRoutes.php b/app/Http/Routes/ApiRoutes.php index d18e4064..2db79259 100644 --- a/app/Http/Routes/ApiRoutes.php +++ b/app/Http/Routes/ApiRoutes.php @@ -47,8 +47,11 @@ class ApiRoutes $router->get('components/{component}', 'ComponentController@show'); $router->get('incidents', 'IncidentController@index'); - $router->get('incidents/{incident}', 'IncidentController@show'); + $router->get('incidents/templates', 'IncidentTemplateController@index'); + $router->get('incidents/templates/{incident_template}', 'IncidentTemplateController@show'); + + $router->get('incidents/{incident}', 'IncidentController@show'); $router->get('incidents/{incident}/updates', 'IncidentUpdateController@index'); $router->get('incidents/{incident}/updates/{update}', 'IncidentUpdateController@show'); diff --git a/tests/Api/IncidentTemplateTest.php b/tests/Api/IncidentTemplateTest.php new file mode 100644 index 00000000..b6b5e486 --- /dev/null +++ b/tests/Api/IncidentTemplateTest.php @@ -0,0 +1,41 @@ + + */ +class IncidentTemplateTest extends AbstractApiTestCase +{ + public function test_can_get_all_incident_templates() + { + $templates = factory(IncidentTemplate::class, 3)->create(); + + $response = $this->json('GET', '/api/v1/incidents/templates'); + + $response->assertJsonFragment([ 'id' => $templates[0]->id ]); + $response->assertJsonFragment([ 'id' => $templates[1]->id ]); + $response->assertJsonFragment([ 'id' => $templates[2]->id ]); + $response->assertStatus(200); + } + + public function test_cannot_get_invalid_incident_template() + { + $response = $this->json('GET', '/api/v1/incidents/templates/1'); + + $response->assertStatus(404); + } + +}