'Updated Task Assignee', 'message' => 'You have successfully updated the Task Assignee' ]; } /** @var CanUpdateTaskAssignee */ private $canUpdateTaskAssignee; /** @var UpdatesTaskAssignee */ private $updatesTaskAssignee; /** @var FetchesTaskAssignee */ private $fetchesTaskAssignee; /** * UpdateTaskAssigneeControllerLogic constructor. * @param CanUpdateTaskAssignee $canUpdateTaskAssignee * @param UpdatesTaskAssignee $updatesTaskAssignee * @param FetchesTaskAssignee $fetchesTaskAssignee */ public function __construct(CanUpdateTaskAssignee $canUpdateTaskAssignee, UpdatesTaskAssignee $updatesTaskAssignee, FetchesTaskAssignee $fetchesTaskAssignee) { $this->canUpdateTaskAssignee = $canUpdateTaskAssignee; $this->updatesTaskAssignee = $updatesTaskAssignee; $this->fetchesTaskAssignee = $fetchesTaskAssignee; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $object = new TaskAssigneeObject($request->input('assignee_id'), $request->input('assignee_type'), $request->input('assignment_id')); $this->canUpdateTaskAssignee->passes($object); $query = $this->fetchesTaskAssignee->execute(['id' => $request->route('id')]); $query = $this->updatesTaskAssignee->execute($query, $object); return $this->resourceResponse(new TaskAssigneeResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }