Change /acars/logs data format; /cancel to DELETE request
This commit is contained in:
@@ -57,12 +57,13 @@ class PirepController extends RestController
|
||||
'level',
|
||||
'route',
|
||||
'notes',
|
||||
'created_at',
|
||||
];
|
||||
|
||||
protected $acarsRepo,
|
||||
$geoSvc,
|
||||
$pirepRepo,
|
||||
$pirepSvc;
|
||||
$geoSvc,
|
||||
$pirepRepo,
|
||||
$pirepSvc;
|
||||
|
||||
/**
|
||||
* PirepController constructor.
|
||||
@@ -245,8 +246,9 @@ class PirepController extends RestController
|
||||
Log::info('Posting ACARS update', $request->toArray());
|
||||
|
||||
$this->validate($request, ['positions' => 'required']);
|
||||
$positions = $request->post()['positions'];
|
||||
$positions = $request->post('positions');
|
||||
|
||||
$count = 0;
|
||||
foreach($positions as $position)
|
||||
{
|
||||
try {
|
||||
@@ -258,6 +260,7 @@ class PirepController extends RestController
|
||||
|
||||
$update = Acars::create($attrs);
|
||||
$update->save();
|
||||
++$count;
|
||||
} catch (\Exception $e) {
|
||||
Log::error($e);
|
||||
}
|
||||
@@ -267,7 +270,7 @@ class PirepController extends RestController
|
||||
$pirep->status = PirepStatus::ENROUTE;
|
||||
$pirep->save();
|
||||
|
||||
return $this->acars_get($id, $request);
|
||||
return $this->message($count . ' positions added', $count);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -275,7 +278,7 @@ class PirepController extends RestController
|
||||
* But rather in a log file.
|
||||
* @param $id
|
||||
* @param Request $request
|
||||
* @return AcarsLogResource
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException
|
||||
*/
|
||||
public function acars_log($id, Request $request)
|
||||
@@ -289,18 +292,24 @@ class PirepController extends RestController
|
||||
|
||||
Log::info('Posting ACARS log', $request->toArray());
|
||||
|
||||
$attrs = $this->getFromReq($request, [
|
||||
'log' => 'required',
|
||||
'lat' => 'nullable',
|
||||
'lon' => 'nullable',
|
||||
'created_at' => 'nullable',
|
||||
], ['pirep_id' => $id, 'type' => AcarsType::LOG]);
|
||||
$this->validate($request, ['logs' => 'required']);
|
||||
$logs = $request->post('logs');
|
||||
|
||||
$acars = Acars::create($attrs);
|
||||
$acars->save();
|
||||
$count = 0;
|
||||
foreach($logs as $log) {
|
||||
$attrs = $this->getFromReq($log, [
|
||||
'log' => 'required',
|
||||
'lat' => 'nullable',
|
||||
'lon' => 'nullable',
|
||||
'created_at' => 'nullable',
|
||||
], ['pirep_id' => $id, 'type' => AcarsType::LOG]);
|
||||
|
||||
AcarsLogResource::withoutWrapping();
|
||||
return new AcarsLogResource($acars);
|
||||
$acars = Acars::create($attrs);
|
||||
$acars->save();
|
||||
++$count;
|
||||
}
|
||||
|
||||
return $this->message($count . ' logs added', $count);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -65,9 +65,14 @@ class RestController
|
||||
* @return bool
|
||||
* @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException
|
||||
*/
|
||||
public function validate(Request $request, $rules)
|
||||
public function validate($request, $rules)
|
||||
{
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
if($request instanceof Request) {
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
} else {
|
||||
$validator = Validator::make($request, $rules);
|
||||
}
|
||||
|
||||
if (!$validator->passes()) {
|
||||
throw new BadRequestHttpException($validator->errors(), null, 400);
|
||||
}
|
||||
@@ -80,10 +85,16 @@ class RestController
|
||||
* @param $message
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function message($message)
|
||||
public function message($message, $count=null)
|
||||
{
|
||||
return response()->json([
|
||||
$attrs = [
|
||||
'message' => $message
|
||||
]);
|
||||
];
|
||||
|
||||
if($count !== null) {
|
||||
$attrs['count'] = $count;
|
||||
}
|
||||
|
||||
return response()->json($attrs);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,12 +28,17 @@ Route::group(['middleware' => ['api.auth']], function ()
|
||||
|
||||
Route::post('pireps/prefile', 'PirepController@prefile');
|
||||
Route::post('pireps/{id}/file', 'PirepController@file');
|
||||
Route::post('pireps/{id}/cancel', 'PirepController@cancel');
|
||||
Route::delete('pireps/{id}/cancel', 'PirepController@cancel');
|
||||
|
||||
Route::get('pireps/{id}/acars/geojson', 'PirepController@acars_geojson');
|
||||
Route::get('pireps/{id}/acars/position', 'PirepController@acars_get');
|
||||
Route::post('pireps/{id}/acars/position', 'PirepController@acars_store');
|
||||
|
||||
Route::get('pireps/{id}/acars/positions', 'PirepController@acars_get');
|
||||
Route::post('pireps/{id}/acars/positions', 'PirepController@acars_store');
|
||||
|
||||
Route::post('pireps/{id}/acars/log', 'PirepController@acars_log');
|
||||
Route::post('pireps/{id}/acars/logs', 'PirepController@acars_log');
|
||||
|
||||
Route::get('pireps/{id}/route', 'PirepController@route_get');
|
||||
Route::post('pireps/{id}/route', 'PirepController@route_post');
|
||||
|
||||
@@ -93,14 +93,10 @@ class AcarsTest extends TestCase
|
||||
# Post an ACARS update
|
||||
$acars = factory(App\Models\Acars::class)->make()->toArray();
|
||||
unset($acars['id']);
|
||||
|
||||
$update = ['positions' => [$acars]];
|
||||
$response = $this->withHeaders($this->apiHeaders())->post($uri, $update);
|
||||
$response->assertStatus(200);
|
||||
|
||||
$body = $response->json();
|
||||
$this->assertNotNull($body[0]['id']);
|
||||
$this->assertEquals($pirep_id, $body[0]['pirep_id']);
|
||||
//$this->assertHasKeys($body, $this->fillableFields(new \App\Models\Acars));
|
||||
$response->assertStatus(200)->assertJson(['count' => 1]);
|
||||
|
||||
# Make sure PIREP state moved into ENROUTE
|
||||
$pirep = $this->getPirep($pirep_id);
|
||||
@@ -140,7 +136,7 @@ class AcarsTest extends TestCase
|
||||
|
||||
$update = ['positions' => $acars];
|
||||
$response = $this->withHeaders($this->apiHeaders())->post($uri, $update);
|
||||
$response->assertStatus(200)->assertJsonCount($acars_count);
|
||||
$response->assertStatus(200)->assertJson(['count' => $acars_count]);
|
||||
|
||||
$response = $this->withHeaders($this->apiHeaders())->get($uri);
|
||||
$response->assertStatus(200)->assertJsonCount($acars_count);
|
||||
@@ -224,12 +220,17 @@ class AcarsTest extends TestCase
|
||||
|
||||
$acars = factory(App\Models\Acars::class)->make();
|
||||
$post_log = [
|
||||
'log' => $acars->log
|
||||
'logs' => [
|
||||
['log' => $acars->log]
|
||||
]
|
||||
];
|
||||
|
||||
$uri = '/api/pireps/' . $pirep_id . '/acars/log';
|
||||
$response = $this->withHeaders($this->apiHeaders())->post($uri, $post_log);
|
||||
$response->assertStatus(201);
|
||||
$response->assertStatus(200);
|
||||
$body = $response->json();
|
||||
|
||||
$this->assertEquals(1, $body['count']);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -302,7 +303,6 @@ class AcarsTest extends TestCase
|
||||
])->toArray();
|
||||
|
||||
$response = $this->withHeaders($this->apiHeaders())->post($uri, $pirep);
|
||||
#$response = $this->withHeaders($this->headers($user->api_key))->post($uri, $pirep);
|
||||
$response->assertStatus(201);
|
||||
$pirep = $response->json();
|
||||
|
||||
|
||||
@@ -204,7 +204,7 @@ class PIREPTest extends TestCase
|
||||
|
||||
# Cancel it
|
||||
$uri = '/api/pireps/' . $pirep_id . '/cancel';
|
||||
$response = $this->withHeaders($this->apiHeaders())->post($uri, $acars);
|
||||
$response = $this->withHeaders($this->apiHeaders())->delete($uri, $acars);
|
||||
$response->assertStatus(200);
|
||||
|
||||
# Should get a 400 when posting an ACARS update
|
||||
|
||||
Reference in New Issue
Block a user