'Retrieved PackingList', 'message' => 'You have successfully retrieved a PackingList' ]; } /** @var CanFetchPackingList */ private $canFetchPackingList; /** @var FetchesPackingList */ private $fetchesPackingList; /** * FetchPackingListControllersLogic constructor. * @param CanFetchPackingList $canFetchPackingList * @param FetchesPackingList $fetchesPackingList */ public function __construct(CanFetchPackingList $canFetchPackingList, FetchesPackingList $fetchesPackingList) { $this->canFetchPackingList = $canFetchPackingList; $this->fetchesPackingList = $fetchesPackingList; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $this->canFetchPackingList->passes(); $query = $this->fetchesPackingList->execute(['id' => $request->route('id')]); return $this->resourceResponse(new PackingListResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }