public Mono<Boolean> updateUser(
            @NotNull Long userId,
            @Nullable String rawPassword,
            @Nullable String name,
            @Nullable String intro,
            @Nullable String profilePicture,
            @Nullable @ValidProfileAccess ProfileAccessStrategy profileAccessStrategy,
            @Nullable Long roleId,
            @Nullable Boolean isActive,
            @Nullable @PastOrPresent Date registrationDate,
            @Nullable Map<String, Value> userDefinedAttributes) {
        try {
            Validator.notNull(userId, "userId");
        } catch (ResponseException e) {
            return Mono.error(e);
        }
        if (userDefinedAttributes == null || userDefinedAttributes.isEmpty()) {
            return updateUsers(Collections.singleton(userId),
                    rawPassword,
                    name,
                    intro,
                    profilePicture,
                    profileAccessStrategy,
                    roleId,
                    registrationDate,
                    isActive,
                    null).map(result -> result.getModifiedCount() > 0);
        }
        return userInfoUserDefinedAttributesService.parseAttributesForUpsert(userDefinedAttributes)
                .flatMap(attributes -> updateUsers(Collections.singleton(userId),
                        rawPassword,
                        name,
                        intro,
                        profilePicture,
                        profileAccessStrategy,
                        roleId,
                        registrationDate,
                        isActive,
                        attributes).map(result -> result.getModifiedCount() > 0));
    }
@return Possible codes: {@link ResponseStatusCode#OK}
        {@link ResponseStatusCode#NOT_FRIEND_TO_QUERY_USER_PROFILE}
        {@link ResponseStatusCode#BLOCKED_USER_TO_QUERY_USER_PROFILE}
        {@link ResponseStatusCode#SERVER_INTERNAL_ERROR}
        {@link ResponseStatusCode#RESOURCE_NOT_FOUND}
turms-service/src/main/java/im/turms/service/domain/user/service/UserService.java