'Deleted PackageItem', 'message' => 'You have successfully deleted a PackageItem' ]; } /** @var CanDeletePackageItem */ private $canDeletePackageItem; /** @var DeletesPackageItem */ private $deletesPackageItem; /** @var FetchesPackageItem */ private $fetchesPackageItem; /** * DeletePackageItemControllersLogic constructor. * @param CanDeletePackageItem $canDeletePackageItem * @param DeletesPackageItem $deletesPackageItem * @param FetchesPackageItem $fetchesPackageItem */ public function __construct(CanDeletePackageItem $canDeletePackageItem, DeletesPackageItem $deletesPackageItem, FetchesPackageItem $fetchesPackageItem) { $this->canDeletePackageItem = $canDeletePackageItem; $this->deletesPackageItem = $deletesPackageItem; $this->fetchesPackageItem = $fetchesPackageItem; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $this->canDeletePackageItem->passes(); $query = $this->fetchesPackageItem->execute(['id' => $request->route('id')]); $this->deletesPackageItem->execute($query); return $this->response([]); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }