Skip to content

Commit f2374a4

Browse files
committed
fix: /internals/personas/all API가 중복 유저 id가 들어오면 버그를 발생시키지 않도록 수정한다
1 parent 806f354 commit f2374a4

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

src/main/kotlin/org/gitanimals/render/controller/InternalPersonaController.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,23 +99,25 @@ class InternalPersonaController(
9999
fun getAllPersonasByUserIdsAndPersonaIds(
100100
@RequestBody usernameAndPersonaIdRequests: List<UsernameAndPersonaIdRequest>
101101
): List<UserResponse> {
102+
val usernameAndPersonaIdRequestSet = usernameAndPersonaIdRequests.toSet()
103+
102104
val users = userService.findAllUsersByNameWithContributions(
103-
usernameAndPersonaIdRequests.map { it.username }.toSet()
105+
usernameAndPersonaIdRequestSet.mapTo(mutableSetOf()) { it.username }
104106
)
105107

106-
require(users.size == usernameAndPersonaIdRequests.size) {
108+
require(users.size == usernameAndPersonaIdRequestSet.size) {
107109
val message = "Failed to retrieve all users from the request."
108110
val retrievedUsers = users.map { it.getName() }
109-
val failedRetrieveUsers = usernameAndPersonaIdRequests.filter { request ->
111+
val failedRetrieveUsers = usernameAndPersonaIdRequestSet.filter { request ->
110112
request.username !in retrievedUsers
111113
}
112-
logger.error("$message request: \"$usernameAndPersonaIdRequests\", failed retrieved users: \"$failedRetrieveUsers\"")
114+
logger.error("$message request: \"$usernameAndPersonaIdRequestSet\", failed retrieved users: \"$failedRetrieveUsers\"")
113115
message
114116
}
115117

116118
return users.map { user ->
117119
val personaId =
118-
usernameAndPersonaIdRequests.first { it.username == user.getName() }.personaId
120+
usernameAndPersonaIdRequestSet.first { it.username == user.getName() }.personaId
119121
UserResponse.fromWithSpecificPersona(user, listOf(personaId))
120122
}
121123
}

0 commit comments

Comments
 (0)