'Created Task', 'message' => 'You have successfully created a new Task' ]; } /** @var CanCreateTask */ private $canCreateTask; /** @var CreatesTask */ private $createsTask; /** * CreateTaskControllerLogic constructor. * @param CanCreateTask $canCreateTask * @param CreatesTask $createsTask */ public function __construct(CanCreateTask $canCreateTask, CreatesTask $createsTask) { $this->canCreateTask = $canCreateTask; $this->createsTask = $createsTask; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $object = new TaskObject($request->input('type_id'), $request->input('title'), $request->input('description'), $request->input('status'), $request->input('active'), $request->input('milestone_id')); $this->canCreateTask->passes($object); $query = $this->createsTask->execute($object); return $this->resourceResponse(new TaskResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }