'Retrieved Task', 'message' => 'You have successfully retrieved a Task' ]; } /** @var CanFetchTask */ private $canFetchTask; /** @var FetchesTask */ private $fetchesTask; /** * FetchTaskControllerLogic constructor. * @param CanFetchTask $canFetchTask * @param FetchesTask $fetchesTask */ public function __construct(CanFetchTask $canFetchTask, FetchesTask $fetchesTask) { $this->canFetchTask = $canFetchTask; $this->fetchesTask = $fetchesTask; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $this->canFetchTask->passes(); $query = $this->fetchesTask->execute(['id' => $request->route('id')]); return $this->resourceResponse(new TaskResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }