'Updated Milestone Task', 'message' => 'You have successfully updated the Milestone Task' ]; } /** @var CanUpdateMilestoneTask */ private $canUpdateMilestoneTask; /** @var UpdatesMilestoneTask */ private $updatesMilestoneTask; /** @var FetchesMilestoneTask */ private $fetchesMilestoneTask; /** * UpdateMilestoneTaskControllerLogic constructor. * @param CanUpdateMilestoneTask $canUpdateMilestoneTask * @param UpdatesMilestoneTask $updatesMilestoneTask * @param FetchesMilestoneTask $fetchesMilestoneTask */ public function __construct(CanUpdateMilestoneTask $canUpdateMilestoneTask, UpdatesMilestoneTask $updatesMilestoneTask, FetchesMilestoneTask $fetchesMilestoneTask) { $this->canUpdateMilestoneTask = $canUpdateMilestoneTask; $this->updatesMilestoneTask = $updatesMilestoneTask; $this->fetchesMilestoneTask = $fetchesMilestoneTask; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $object = new MilestoneTaskObject($request->input('milestone_id'), $request->input('type_id'), $request->input('title'), $request->input('description')); $this->canUpdateMilestoneTask->passes($object); $query = $this->fetchesMilestoneTask->execute(['id' => $request->route('id')]); $query = $this->updatesMilestoneTask->execute($query, $object); return $this->resourceResponse(new MilestoneTaskResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }