'Retrieved Packages', 'message' => 'You have successfully retrieved a list of Packages' ]; } /** @var CanListPackages */ private $canListPackages; /** @var ListsPackages */ private $listsPackages; /** * ListPackagesLogic constructor. * @param CanListPackages $canListPackages * @param ListsPackages $listsPackages */ public function __construct(CanListPackages $canListPackages, ListsPackages $listsPackages) { $this->canListPackages = $canListPackages; $this->listsPackages = $listsPackages; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $this->canListPackages->passes(); $query = $this->listsPackages->execute($this->listsPackages->deserializeFilters($request->input('filters'))); return $this->collectionResponse(PackageResource::collection($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }