mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 14:27:24 +00: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(
|
||||
username: String?,
|
||||
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)
|
||||
} else if (username != null && userAttributes.serverUrl != null) {
|
||||
userRepository.getUserWithUsernameAndServer(username, userAttributes.serverUrl)
|
||||
@ -129,9 +129,9 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
||||
Maybe.empty()
|
||||
}
|
||||
|
||||
return userObservable
|
||||
return userMaybe
|
||||
.map { user: User? ->
|
||||
val userModel = when (user) {
|
||||
when (user) {
|
||||
null -> createUser(
|
||||
username,
|
||||
userAttributes
|
||||
@ -144,9 +144,12 @@ class UserManager internal constructor(private val userRepository: UsersReposito
|
||||
user
|
||||
}
|
||||
}
|
||||
val id = userRepository.insertUser(userModel)
|
||||
id
|
||||
}.flatMap { id ->
|
||||
}
|
||||
.switchIfEmpty(Maybe.just(createUser(username, userAttributes)))
|
||||
.map { user ->
|
||||
userRepository.insertUser(user)
|
||||
}
|
||||
.flatMap { id ->
|
||||
userRepository.getUserWithId(id)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user