Allow getUserDetails() to lookup on userId when user not found by username query
This commit is contained in:
parent
735f3427c5
commit
9719853302
@ -43,7 +43,7 @@ class UserService(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getUserDetails(identifier: Any): UserDetailsExtended? {
|
fun getUserDetails(identifier: Any): UserDetailsExtended? {
|
||||||
val user = when (identifier) {
|
var user = when (identifier) {
|
||||||
is Long -> dslContext.selectFrom(USERS)
|
is Long -> dslContext.selectFrom(USERS)
|
||||||
.where(USERS.USER_ID.eq(identifier))
|
.where(USERS.USER_ID.eq(identifier))
|
||||||
.fetchOneInto(UsersRecord::class.java)
|
.fetchOneInto(UsersRecord::class.java)
|
||||||
@ -53,6 +53,16 @@ class UserService(
|
|||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Lookup user by ID if we have not found a user via a username lookup and the identifier is a valid number
|
||||||
|
if (user == null && identifier is String) {
|
||||||
|
val longIdentifier = identifier.toLongOrNull()
|
||||||
|
if (longIdentifier != null) {
|
||||||
|
user = dslContext.selectFrom(USERS)
|
||||||
|
.where(USERS.USER_ID.eq(longIdentifier))
|
||||||
|
.fetchOneInto(UsersRecord::class.java)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
val userDetails = UserDetails(
|
val userDetails = UserDetails(
|
||||||
user.userId!!,
|
user.userId!!,
|
||||||
@ -75,7 +85,7 @@ class UserService(
|
|||||||
// The database does NOT have the user; we will now use the osu!api
|
// The database does NOT have the user; we will now use the osu!api
|
||||||
val apiUser = when (identifier) {
|
val apiUser = when (identifier) {
|
||||||
is Long -> this.osuApi.getUserProfile(userId = identifier.toString(), mode = "osu", key = "id")
|
is Long -> this.osuApi.getUserProfile(userId = identifier.toString(), mode = "osu", key = "id")
|
||||||
is String -> this.osuApi.getUserProfile(userId = identifier, mode = "osu", key = "username")
|
is String -> this.osuApi.getUserProfile(userId = identifier, mode = "osu")
|
||||||
else -> null
|
else -> null
|
||||||
} ?: return null
|
} ?: return null
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user