Add /api/flights to retrieve all flights paginated #120
This commit is contained in:
parent
2de8d9ed64
commit
082c33ae59
@ -10,7 +10,7 @@ $factory->define(App\Models\Flight::class, function (Faker $faker) use ($airline
|
|||||||
return [
|
return [
|
||||||
'id' => substr($faker->unique()->sha1, 28, 12),
|
'id' => substr($faker->unique()->sha1, 28, 12),
|
||||||
'airline_id' => $faker->randomElement($airlinesAvailable),
|
'airline_id' => $faker->randomElement($airlinesAvailable),
|
||||||
'flight_number' => $faker->unique()->text(10),
|
'flight_number' => $faker->unique()->numberBetween(10, 1000000),
|
||||||
'route_code' => $faker->randomElement(['', $faker->text(5)]),
|
'route_code' => $faker->randomElement(['', $faker->text(5)]),
|
||||||
'route_leg' => $faker->randomElement(['', $faker->text(5)]),
|
'route_leg' => $faker->randomElement(['', $faker->text(5)]),
|
||||||
'dpt_airport_id' => function() {
|
'dpt_airport_id' => function() {
|
||||||
|
@ -18,6 +18,18 @@ class FlightController extends RestController
|
|||||||
$this->flightRepo = $flightRepo;
|
$this->flightRepo = $flightRepo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return all the flights, paginated
|
||||||
|
*/
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$flights = $this->flightRepo
|
||||||
|
->orderBy('flight_number', 'asc')
|
||||||
|
->paginate(50);
|
||||||
|
|
||||||
|
return FlightResource::collection($flights);
|
||||||
|
}
|
||||||
|
|
||||||
public function get($id)
|
public function get($id)
|
||||||
{
|
{
|
||||||
$flight = $this->flightRepo->find($id);
|
$flight = $this->flightRepo->find($id);
|
||||||
|
@ -18,6 +18,7 @@ Route::group([], function()
|
|||||||
Route::get('fleet', 'FleetController@index');
|
Route::get('fleet', 'FleetController@index');
|
||||||
Route::get('fleet/aircraft/{id}', 'FleetController@get_aircraft');
|
Route::get('fleet/aircraft/{id}', 'FleetController@get_aircraft');
|
||||||
|
|
||||||
|
Route::get('flights', 'FlightController@index');
|
||||||
Route::get('flights/search', 'FlightController@search');
|
Route::get('flights/search', 'FlightController@search');
|
||||||
Route::get('flights/{id}', 'FlightController@get');
|
Route::get('flights/{id}', 'FlightController@get');
|
||||||
|
|
||||||
|
@ -54,12 +54,27 @@ class FlightTest extends TestCase
|
|||||||
$req->assertStatus(200);
|
$req->assertStatus(200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find all of the flights
|
||||||
|
*/
|
||||||
|
public function testFindAllFlights()
|
||||||
|
{
|
||||||
|
factory(App\Models\Flight::class, 120)->create();
|
||||||
|
$res = $this->get('/api/flights');
|
||||||
|
|
||||||
|
$body = $res->json();
|
||||||
|
$this->assertEquals(3, $body['meta']['last_page']);
|
||||||
|
|
||||||
|
$res = $this->get('/api/flights?page=3');
|
||||||
|
$res->assertJsonCount(20, 'data');
|
||||||
|
}
|
||||||
|
|
||||||
public function testFlightSearchApi()
|
public function testFlightSearchApi()
|
||||||
{
|
{
|
||||||
$flights = factory(App\Models\Flight::class, 100)->create();
|
$flights = factory(App\Models\Flight::class, 100)->create();
|
||||||
$flight = $flights->random();
|
$flight = $flights->random();
|
||||||
|
|
||||||
$query = 'dep_icao=' . $flight->dep_icao;
|
$query = 'flight_number=' . $flight->flight_number;
|
||||||
$req = $this->get('/api/flights/search?' . $query);
|
$req = $this->get('/api/flights/search?' . $query);
|
||||||
$body = $req->json();
|
$body = $req->json();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user