Fix tests and extend the source_name field
This commit is contained in:
@@ -45,6 +45,7 @@ $factory->define(App\Models\Pirep::class, function (Faker $faker) {
|
|||||||
'route' => $faker->text(200),
|
'route' => $faker->text(200),
|
||||||
'notes' => $faker->text(200),
|
'notes' => $faker->text(200),
|
||||||
'source' => $faker->randomElement([PirepSource::MANUAL, PirepSource::ACARS]),
|
'source' => $faker->randomElement([PirepSource::MANUAL, PirepSource::ACARS]),
|
||||||
|
'source_name' => 'Test Factory',
|
||||||
'state' => PirepState::PENDING,
|
'state' => PirepState::PENDING,
|
||||||
'status' => PirepStatus::SCHEDULED,
|
'status' => PirepStatus::SCHEDULED,
|
||||||
'raw_data' => $raw_data ?: $raw_data = json_encode(['key' => 'value']),
|
'raw_data' => $raw_data ?: $raw_data = json_encode(['key' => 'value']),
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class CreatePirepTables extends Migration
|
|||||||
$table->text('route')->nullable();
|
$table->text('route')->nullable();
|
||||||
$table->text('notes')->nullable();
|
$table->text('notes')->nullable();
|
||||||
$table->unsignedTinyInteger('source')->nullable()->default(0);
|
$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('flight_type')->default(FlightType::PASSENGER);
|
||||||
$table->tinyInteger('state')->default(PirepState::PENDING);
|
$table->tinyInteger('state')->default(PirepState::PENDING);
|
||||||
$table->tinyInteger('status')->default(PirepStatus::SCHEDULED);
|
$table->tinyInteger('status')->default(PirepStatus::SCHEDULED);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Exceptions;
|
namespace App\Exceptions;
|
||||||
|
|
||||||
|
use Illuminate\Validation\ValidationException;
|
||||||
use Log;
|
use Log;
|
||||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||||
use Exception;
|
use Exception;
|
||||||
@@ -52,6 +53,15 @@ class Handler extends ExceptionHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($request->is('api/*')) {
|
if($request->is('api/*')) {
|
||||||
|
|
||||||
|
$error = [
|
||||||
|
'error' => [
|
||||||
|
'code' => $exception->getCode(),
|
||||||
|
'message' => $exception->getMessage(),
|
||||||
|
'trace' => $exception->getTrace()[0],
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
$status = 400;
|
$status = 400;
|
||||||
$http_code = $exception->getCode();
|
$http_code = $exception->getCode();
|
||||||
if ($this->isHttpException($exception)) {
|
if ($this->isHttpException($exception)) {
|
||||||
@@ -64,16 +74,16 @@ class Handler extends ExceptionHandler
|
|||||||
$http_code = 404;
|
$http_code = 404;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($exception instanceof ValidationException) {
|
||||||
|
$status = 400;
|
||||||
|
$http_code = 400;
|
||||||
|
$error['error']['failedRules'] = $exception->validator->failed();
|
||||||
|
}
|
||||||
|
|
||||||
Log::error($exception->getMessage());
|
Log::error($exception->getMessage());
|
||||||
|
|
||||||
return response()->json([
|
$error['error']['http_code'] = $http_code;
|
||||||
'error' => [
|
return response()->json($error, $status);
|
||||||
'code' => $exception->getCode() ,
|
|
||||||
'http_code' => $http_code,
|
|
||||||
'message' => $exception->getMessage(),
|
|
||||||
'trace' => $exception->getTrace()[0],
|
|
||||||
]
|
|
||||||
], $status);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return parent::render($request, $exception);
|
return parent::render($request, $exception);
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ class PrefileRequest extends FormRequest
|
|||||||
'dpt_airport_id' => 'required',
|
'dpt_airport_id' => 'required',
|
||||||
'arr_airport_id' => 'required',
|
'arr_airport_id' => 'required',
|
||||||
'planned_distance' => 'required|numeric',
|
'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_code' => 'nullable',
|
||||||
'route_leg' => 'nullable',
|
'route_leg' => 'nullable',
|
||||||
'distance' => 'nullable|numeric',
|
'distance' => 'nullable|numeric',
|
||||||
|
|||||||
@@ -102,6 +102,9 @@ return [
|
|||||||
'required' => 'Flight time, in minutes, is required',
|
'required' => 'Flight time, in minutes, is required',
|
||||||
'integer' => 'Flight time, in minutes, is required',
|
'integer' => 'Flight time, in minutes, is required',
|
||||||
],
|
],
|
||||||
|
'source_name' => [
|
||||||
|
'required' => 'PIREP Source is required',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -102,8 +102,10 @@ class AcarsTest extends TestCase
|
|||||||
'arr_airport_id' => $airport->icao,
|
'arr_airport_id' => $airport->icao,
|
||||||
'flight_number' => '6000',
|
'flight_number' => '6000',
|
||||||
'level' => 38000,
|
'level' => 38000,
|
||||||
|
'planned_distance' => 400,
|
||||||
'planned_flight_time' => 120,
|
'planned_flight_time' => 120,
|
||||||
'route' => 'POINTA POINTB',
|
'route' => 'POINTA POINTB',
|
||||||
|
'source_name' => 'UnitTest',
|
||||||
];
|
];
|
||||||
|
|
||||||
$response = $this->post($uri, $pirep);
|
$response = $this->post($uri, $pirep);
|
||||||
@@ -167,7 +169,10 @@ class AcarsTest extends TestCase
|
|||||||
$response = $this->post($uri, ['flight_time' => '1:30']);
|
$response = $this->post($uri, ['flight_time' => '1:30']);
|
||||||
$response->assertStatus(400); // invalid flight time
|
$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);
|
$response->assertStatus(200);
|
||||||
|
|
||||||
# Add a comment
|
# Add a comment
|
||||||
|
|||||||
Reference in New Issue
Block a user