'Created Milestone Task', 'message' => 'You have successfully created a new Milestone Task' ]; } /** @var CanCreateMilestoneTask */ private $canCreateMilestoneTask; /** @var CreatesMilestoneTask */ private $createsMilestoneTask; /** * CreateMilestoneTaskControllerLogic constructor. * @param CanCreateMilestoneTask $canCreateMilestoneTask * @param CreatesMilestoneTask $createsMilestoneTask */ public function __construct(CanCreateMilestoneTask $canCreateMilestoneTask, CreatesMilestoneTask $createsMilestoneTask) { $this->canCreateMilestoneTask = $canCreateMilestoneTask; $this->createsMilestoneTask = $createsMilestoneTask; } /** * @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->canCreateMilestoneTask->passes($object); $query = $this->createsMilestoneTask->execute($object); return $this->resourceResponse(new MilestoneTaskResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }