'Updated User Profile', 'message' => 'You have successfully updated the User Profile' ]; } /** @var CanUpdateUser */ private $canUpdateUser; /** @var UpdatesUser */ private $updatesUser; /** @var FetchesUser */ private $fetchesUser; /** * UpdateAddressLogic constructor. * @param CanUpdateUser $canUpdateUser * @param UpdatesUser $updatesUser * @param FetchesUser $fetchesUSer */ public function __construct(CanUpdateUser $canUpdateUser, UpdatesUser $updatesUser, FetchesUser $fetchesUser) { $this->canUpdateUser = $canUpdateUser; $this->updatesUser = $updatesUser; $this->fetchesUser = $fetchesUser; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { try { $object = new UserObject($request->input('name')); $this->canUpdateUser->passes($object); $query = $this->fetchesUser->execute(['id' => $request->route('id')]); $query = $this->updatesUser->execute($query, $object); return $this->resourceResponse(new UserResource($query)); } catch (\Exception $exception){ throw new ErrorException($exception->getMessage(), $exception->getCode()); } } }