Fix tests and extend the source_name field

This commit is contained in:
Nabeel Shahzad
2018-01-29 20:30:29 -06:00
parent a5f51f6264
commit 906a8ef5fe
6 changed files with 31 additions and 12 deletions

View File

@@ -45,6 +45,7 @@ $factory->define(App\Models\Pirep::class, function (Faker $faker) {
'route' => $faker->text(200),
'notes' => $faker->text(200),
'source' => $faker->randomElement([PirepSource::MANUAL, PirepSource::ACARS]),
'source_name' => 'Test Factory',
'state' => PirepState::PENDING,
'status' => PirepStatus::SCHEDULED,
'raw_data' => $raw_data ?: $raw_data = json_encode(['key' => 'value']),

View File

@@ -40,7 +40,7 @@ class CreatePirepTables extends Migration
$table->text('route')->nullable();
$table->text('notes')->nullable();
$table->unsignedTinyInteger('source')->nullable()->default(0);
$table->string('source_name', 20)->nullable();
$table->string('source_name', 25)->nullable();
$table->tinyInteger('flight_type')->default(FlightType::PASSENGER);
$table->tinyInteger('state')->default(PirepState::PENDING);
$table->tinyInteger('status')->default(PirepStatus::SCHEDULED);

View File

@@ -2,6 +2,7 @@
namespace App\Exceptions;
use Illuminate\Validation\ValidationException;
use Log;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Exception;
@@ -52,6 +53,15 @@ class Handler extends ExceptionHandler
}
if($request->is('api/*')) {
$error = [
'error' => [
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
'trace' => $exception->getTrace()[0],
]
];
$status = 400;
$http_code = $exception->getCode();
if ($this->isHttpException($exception)) {
@@ -64,16 +74,16 @@ class Handler extends ExceptionHandler
$http_code = 404;
}
if($exception instanceof ValidationException) {
$status = 400;
$http_code = 400;
$error['error']['failedRules'] = $exception->validator->failed();
}
Log::error($exception->getMessage());
return response()->json([
'error' => [
'code' => $exception->getCode() ,
'http_code' => $http_code,
'message' => $exception->getMessage(),
'trace' => $exception->getTrace()[0],
]
], $status);
$error['error']['http_code'] = $http_code;
return response()->json($error, $status);
}
return parent::render($request, $exception);

View File

@@ -25,9 +25,9 @@ class PrefileRequest extends FormRequest
'dpt_airport_id' => 'required',
'arr_airport_id' => 'required',
'planned_distance' => 'required|numeric',
'source_name' => 'required|max:20',
'source_name' => 'required',
'flight_id' => 'nullable|exists:flights,id',
'flight_id' => 'nullable',
'route_code' => 'nullable',
'route_leg' => 'nullable',
'distance' => 'nullable|numeric',

View File

@@ -102,6 +102,9 @@ return [
'required' => 'Flight time, in minutes, is required',
'integer' => 'Flight time, in minutes, is required',
],
'source_name' => [
'required' => 'PIREP Source is required',
],
],
/**

View File

@@ -102,8 +102,10 @@ class AcarsTest extends TestCase
'arr_airport_id' => $airport->icao,
'flight_number' => '6000',
'level' => 38000,
'planned_distance' => 400,
'planned_flight_time' => 120,
'route' => 'POINTA POINTB',
'source_name' => 'UnitTest',
];
$response = $this->post($uri, $pirep);
@@ -167,7 +169,10 @@ class AcarsTest extends TestCase
$response = $this->post($uri, ['flight_time' => '1:30']);
$response->assertStatus(400); // invalid flight time
$response = $this->post($uri, ['flight_time' => '130']);
$response = $this->post($uri, [
'flight_time' => 130,
'distance' => 400,
]);
$response->assertStatus(200);
# Add a comment