'Retrieved Schedule', 'message' => 'You have successfully retrieved a Schedule' ]; } /** @var CanFetchSchedule */ private $canFetchSchedule; /** @var FetchesSchedule */ private $fetchesSchedule; /** * FetchScheduleControllersLogic constructor. * @param CanFetchSchedule $canFetchSchedule * @param FetchesSchedule $fetchesSchedule */ public function __construct(CanFetchSchedule $canFetchSchedule, FetchesSchedule $fetchesSchedule) { $this->canFetchSchedule = $canFetchSchedule; $this->fetchesSchedule = $fetchesSchedule; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { $this->canFetchSchedule->passes(); $query = $this->fetchesSchedule->execute(['id' => $request->route('id')]); return $this->resourceResponse(new ScheduleResource($query)); } }