From e69d9f4c3841441014523fbc679e1cc1d8971f97 Mon Sep 17 00:00:00 2001 From: Nabeel Shahzad Date: Tue, 6 Feb 2018 13:59:40 -0600 Subject: [PATCH] Add pirep fields to the API response; add tests for setting/getting them --- app/Http/Resources/Pirep.php | 2 ++ app/Routes/api.php | 3 +++ tests/AcarsTest.php | 25 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/app/Http/Resources/Pirep.php b/app/Http/Resources/Pirep.php index b5c76766..6393c331 100644 --- a/app/Http/Resources/Pirep.php +++ b/app/Http/Resources/Pirep.php @@ -28,6 +28,8 @@ class Pirep extends Resource 'curr_airport_id' => $this->user->curr_airport_id, ]; + $pirep['fields'] = $this->fields; + return $pirep; } } diff --git a/app/Routes/api.php b/app/Routes/api.php index ce1847d5..88c9d2aa 100755 --- a/app/Routes/api.php +++ b/app/Routes/api.php @@ -38,7 +38,10 @@ Route::group([], function() Route::group(['middleware' => ['api.auth']], function () { Route::post('pireps/prefile', 'PirepController@prefile'); + + Route::put('pireps/{pirep_id}', 'PirepController@update'); Route::post('pireps/{pirep_id}/update', 'PirepController@update'); + Route::post('pireps/{pirep_id}/file', 'PirepController@file'); Route::post('pireps/{pirep_id}/comments', 'PirepController@comments_post'); Route::delete('pireps/{pirep_id}/cancel', 'PirepController@cancel'); diff --git a/tests/AcarsTest.php b/tests/AcarsTest.php index 8621654c..7ed16601 100644 --- a/tests/AcarsTest.php +++ b/tests/AcarsTest.php @@ -106,6 +106,9 @@ class AcarsTest extends TestCase 'planned_flight_time' => 120, 'route' => 'POINTA POINTB', 'source_name' => 'UnitTest', + 'fields' => [ + 'custom_field' => 'custom_value', + ] ]; $response = $this->post($uri, $pirep); @@ -124,6 +127,28 @@ class AcarsTest extends TestCase $this->assertEquals(PirepState::IN_PROGRESS, $pirep['state']); $this->assertEquals(PirepStatus::PREFILE, $pirep['status']); + /** + * Check the fields + */ + $this->assertHasKeys($pirep, ['fields']); + $this->assertEquals('custom_field', $pirep['fields'][0]['name']); + $this->assertEquals('custom_value', $pirep['fields'][0]['value']); + + /** + * Update the custom field + */ + $uri = '/api/pireps/' . $pirep_id . '/update'; + $this->post($uri, ['fields' => [ + 'custom_field' => 'custom_value_changed', + ]]); + + $pirep = $this->getPirep($pirep_id); + $this->assertEquals('custom_value_changed', $pirep['fields'][0]['value']); + + /** + * Add some position updates + */ + $uri = '/api/pireps/' . $pirep_id . '/acars/position'; # Test missing positions field