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