diff --git a/nise-backend/src/main/kotlin/com/nisemoe/nise/controller/UserDetailsController.kt b/nise-backend/src/main/kotlin/com/nisemoe/nise/controller/UserDetailsController.kt index 28103e1..d763b8c 100644 --- a/nise-backend/src/main/kotlin/com/nisemoe/nise/controller/UserDetailsController.kt +++ b/nise-backend/src/main/kotlin/com/nisemoe/nise/controller/UserDetailsController.kt @@ -50,9 +50,13 @@ class UserDetailsController( ResponseEntity.badRequest().build() } - @GetMapping("user-details/{userId}") - fun getUserDetails(@PathVariable userId: String): ResponseEntity { - val userDetails = this.userService.getUserDetails(username = userId) + data class UserDetailsRequest( + val userId: String + ) + + @PostMapping("user-details") + fun getUserDetails(@RequestBody request: UserDetailsRequest): ResponseEntity { + val userDetails = this.userService.getUserDetails(username = request.userId) ?: return ResponseEntity.notFound().build() var suspiciousScoresCondition = this.scoreService.getDefaultCondition() diff --git a/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApi.kt b/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApi.kt index dd9db3f..514284e 100644 --- a/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApi.kt +++ b/nise-backend/src/main/kotlin/com/nisemoe/nise/osu/OsuApi.kt @@ -10,9 +10,11 @@ import org.springframework.beans.factory.InitializingBean import org.springframework.beans.factory.annotation.Value import org.springframework.stereotype.Service import java.net.URI +import java.net.URLEncoder import java.net.http.HttpClient import java.net.http.HttpRequest import java.net.http.HttpResponse +import java.nio.charset.StandardCharsets import java.util.concurrent.atomic.AtomicInteger class InvalidOsuApiKeyException() : Exception() @@ -228,7 +230,7 @@ class OsuApi( val accessToken = this.tokenService.getAccessToken() val encodedUserId = userId.replace(' ', '_') - val uriBuilder = StringBuilder("https://osu.ppy.sh/api/v2/users/$encodedUserId") + val uriBuilder = StringBuilder("https://osu.ppy.sh/api/v2/users/${URLEncoder.encode(encodedUserId, StandardCharsets.UTF_8.toString())}") if (mode != null) uriBuilder.append("/$mode") if (key != null) uriBuilder.append("?key=$key") diff --git a/nise-frontend/src/app/view-user/view-user.component.ts b/nise-frontend/src/app/view-user/view-user.component.ts index d30259c..371bace 100644 --- a/nise-frontend/src/app/view-user/view-user.component.ts +++ b/nise-frontend/src/app/view-user/view-user.component.ts @@ -68,7 +68,10 @@ export class ViewUserComponent implements OnInit, OnChanges, OnDestroy { ) { } getUserInfo(): Observable { - return this.httpClient.get(`${environment.apiUrl}/user-details/${this.userId}`); + const body = { + userId: this.userId + } + return this.httpClient.post(`${environment.apiUrl}/user-details`, body); } ngOnChanges(): void {