'Deleted Address', 'message' => 'You have successfully deleted a Address' ]; } /** @var CanDeleteAddress */ private $canDeleteAddress; /** @var DeletesAddress */ private $deletesAddress; /** @var FetchesAddress */ private $fetchesAddress; /** * DeleteAddressControllersLogic constructor. * @param CanDeleteAddress $canDeleteAddress * @param DeletesAddress $deletesAddress * @param FetchesAddress $fetchesAddress */ public function __construct(CanDeleteAddress $canDeleteAddress, DeletesAddress $deletesAddress, FetchesAddress $fetchesAddress) { $this->canDeleteAddress = $canDeleteAddress; $this->deletesAddress = $deletesAddress; $this->fetchesAddress = $fetchesAddress; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $this->canDeleteAddress->passes(); $query = $this->fetchesAddress->execute(['id' => $request->route('id')]); $this->deletesAddress->execute($query); return $this->response([]); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }