'Deleted Package', 'message' => 'You have successfully deleted a Package' ]; } /** @var CanDeletePackage */ private $canDeletePackage; /** @var DeletesPackage */ private $deletesPackage; /** @var FetchesPackage */ private $fetchesPackage; /** * DeletePackageControllersLogic constructor. * @param CanDeletePackage $canDeletePackage * @param DeletesPackage $deletesPackage * @param FetchesPackage $fetchesPackage */ public function __construct(CanDeletePackage $canDeletePackage, DeletesPackage $deletesPackage, FetchesPackage $fetchesPackage) { $this->canDeletePackage = $canDeletePackage; $this->deletesPackage = $deletesPackage; $this->fetchesPackage = $fetchesPackage; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $this->canDeletePackage->passes(); $query = $this->fetchesPackage->execute(['id' => $request->route('id')]); $this->deletesPackage->execute($query); return $this->response([]); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }