'Retrieved Transport', 'message' => 'You have successfully retrieved a Transport' ]; } /** @var CanFetchTransport */ private $canFetchTransport; /** @var FetchesTransport */ private $fetchesTransport; /** * FetchTransportControllersLogic constructor. * @param CanFetchTransport $canFetchTransport * @param FetchesTransport $fetchesTransport */ public function __construct(CanFetchTransport $canFetchTransport, FetchesTransport $fetchesTransport) { $this->canFetchTransport = $canFetchTransport; $this->fetchesTransport = $fetchesTransport; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { $this->canFetchTransport->passes(); $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); return $this->resourceResponse(new TransportResource($query)); } }