input('per_page', 10); $page = $request->input('page', 1); $collection = $client->listAirports($request->input('autocomplete')); $paginator = new LengthAwarePaginator( $collection->forPage($page, $per_page), $collection->count(), $per_page, $page ); $airports = new Collection($paginator, new AirportTransformer(), 'airports'); $airports->setPaginator(new IlluminatePaginatorAdapter($paginator)); return $this->JsonApiResponse($airports, 200); } /** * Get details of an airport by it's code * * @api {get} /airports/:code * @apiName Get Airport from code * * @apiParam {string} code 3 letter airport code * * @param \Illuminate\Http\Request $request * @param $code * @return \Illuminate\Http\JsonResponse */ public function getAirport(Request $request, $code) { $client = Client::create(); $result = $client->getAirport($code); $result = new Item($result, new AirportTransformer(), 'airports'); return $this->JsonApiResponse($result, 200); } /** * Convert the response to Json * * @param \League\Fractal\Resource\Item $resource * @param $statusCode * @return \Illuminate\Http\JsonResponse */ protected function JsonApiResponse(ResourceInterface $resource, $statusCode) { $manager = new Manager(); $manager->setSerializer(new JsonApiSerializer('http://docker.dev:8080')); return response()->json($manager->createData($resource)->toArray(), $statusCode); } }