'Retrieved Address', 'message' => 'You have successfully retrieved a Address' ]; } /** @var CanFetchAddress */ private $canFetchAddress; /** @var FetchesAddress */ private $fetchesAddress; /** * FetchAddressControllerLogic constructor. * @param CanFetchAddress $canFetchAddress * @param FetchesAddress $fetchesAddress */ public function __construct(CanFetchAddress $canFetchAddress, FetchesAddress $fetchesAddress) { $this->canFetchAddress = $canFetchAddress; $this->fetchesAddress = $fetchesAddress; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $this->canFetchAddress->passes(); $query = $this->fetchesAddress->execute(['id' => $request->route('id')]); return $this->resourceResponse(new AddressResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }