mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 03:59:35 +01:00
fix upsert logic for users
Co-authored-by: Álvaro Brey <alvaro.brey@nextcloud.com> Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
parent
dc83403606
commit
f1dff03188
@ -119,9 +119,9 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
|||||||
fun createOrUpdateUser(
|
fun createOrUpdateUser(
|
||||||
username: String?,
|
username: String?,
|
||||||
userAttributes: UserAttributes,
|
userAttributes: UserAttributes,
|
||||||
): Maybe<User?> {
|
): Maybe<User> {
|
||||||
|
|
||||||
val userObservable: Maybe<User> = if (userAttributes.id != null) {
|
val userMaybe: Maybe<User> = if (userAttributes.id != null) {
|
||||||
userRepository.getUserWithId(userAttributes.id)
|
userRepository.getUserWithId(userAttributes.id)
|
||||||
} else if (username != null && userAttributes.serverUrl != null) {
|
} else if (username != null && userAttributes.serverUrl != null) {
|
||||||
userRepository.getUserWithUsernameAndServer(username, userAttributes.serverUrl)
|
userRepository.getUserWithUsernameAndServer(username, userAttributes.serverUrl)
|
||||||
@ -129,9 +129,9 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
|||||||
Maybe.empty()
|
Maybe.empty()
|
||||||
}
|
}
|
||||||
|
|
||||||
return userObservable
|
return userMaybe
|
||||||
.map { user: User? ->
|
.map { user: User? ->
|
||||||
val userModel = when (user) {
|
when (user) {
|
||||||
null -> createUser(
|
null -> createUser(
|
||||||
username,
|
username,
|
||||||
userAttributes
|
userAttributes
|
||||||
@ -144,9 +144,12 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
|||||||
user
|
user
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val id = userRepository.insertUser(userModel)
|
}
|
||||||
id
|
.switchIfEmpty(Maybe.just(createUser(username, userAttributes)))
|
||||||
}.flatMap { id ->
|
.map { user ->
|
||||||
|
userRepository.insertUser(user)
|
||||||
|
}
|
||||||
|
.flatMap { id ->
|
||||||
userRepository.getUserWithId(id)
|
userRepository.getUserWithId(id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user