phpvms/app/Http/Controllers/Api/FleetController.php
2018-03-19 20:50:40 -05:00

71 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Resources\Aircraft as AircraftResource;
use App\Http\Resources\Subfleet as SubfleetResource;
use App\Interfaces\Controller;
use App\Repositories\AircraftRepository;
use App\Repositories\SubfleetRepository;
use Illuminate\Http\Request;
/**
* Class FleetController
* @package App\Http\Controllers\Api
*/
class FleetController extends Controller
{
private $aircraftRepo,
$subfleetRepo;
/**
* FleetController constructor.
* @param AircraftRepository $aircraftRepo
* @param SubfleetRepository $subfleetRepo
*/
public function __construct(
AircraftRepository $aircraftRepo,
SubfleetRepository $subfleetRepo
) {
$this->aircraftRepo = $aircraftRepo;
$this->subfleetRepo = $subfleetRepo;
}
/**
* Return all the subfleets and the aircraft and any other associated data
* Paginated
*/
public function index()
{
$subfleets = $this->subfleetRepo
->with(['aircraft', 'airline', 'fares', 'ranks'])
->paginate();
return SubfleetResource::collection($subfleets);
}
/**
* Get a specific aircraft. Query string required to specify the tail
* /api/aircraft/XYZ?type=registration
* @param $id
* @param Request $request
* @return AircraftResource
*/
public function get_aircraft($id, Request $request)
{
$where = [];
if ($request->filled('type')) {
$where[$request->get('type')] = $id;
} else {
$where['id'] = $id;
}
$aircraft = $this->aircraftRepo
->with(['subfleet', 'subfleet.fares'])
->findWhere($where)
->first();
return new AircraftResource($aircraft);
}
}