'Deleted Project', 'message' => 'You have successfully deleted a Project' ]; } /** @var CanDeleteProject */ private $canDeleteProject; /** @var DeletesProject */ private $deletesProject; /** @var FetchesProject */ private $fetchesProject; /** * DeleteProjectControllerLogic constructor. * @param CanDeleteProject $canDeleteProject * @param DeletesProject $deletesProject * @param FetchesProject $fetchesProject */ public function __construct(CanDeleteProject $canDeleteProject, DeletesProject $deletesProject, FetchesProject $fetchesProject) { $this->canDeleteProject = $canDeleteProject; $this->deletesProject = $deletesProject; $this->fetchesProject = $fetchesProject; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $this->canDeleteProject->passes(); $query = $this->fetchesProject->execute(['id' => $request->route('id')]); $this->deletesProject->execute($query); return $this->response([]); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }