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