From 3f7bf618e4200f93b9b8893c6c8d24be8995ca2f Mon Sep 17 00:00:00 2001 From: HyunSu1768 Date: Wed, 17 Apr 2024 19:55:10 +0900 Subject: [PATCH] =?UTF-8?q?fix=20::=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/auth/service/LoginService.kt | 21 ++++++------------- .../domain/auth/service/SignupService.kt | 11 +--------- .../feign/client/dsm/DsmLoginClient.kt | 2 +- .../client/dsm/dto/GetDsmUserInfoResponse.kt | 10 ++++++++- 4 files changed, 17 insertions(+), 27 deletions(-) diff --git a/src/main/kotlin/xquare/app/xquareinfra/domain/auth/service/LoginService.kt b/src/main/kotlin/xquare/app/xquareinfra/domain/auth/service/LoginService.kt index 91775d9..7ba9e3e 100644 --- a/src/main/kotlin/xquare/app/xquareinfra/domain/auth/service/LoginService.kt +++ b/src/main/kotlin/xquare/app/xquareinfra/domain/auth/service/LoginService.kt @@ -1,6 +1,5 @@ package xquare.app.xquareinfra.domain.auth.service -import kotlinx.serialization.json.Json import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import xquare.app.xquareinfra.domain.auth.adapter.dto.request.LoginRequest @@ -8,35 +7,27 @@ import xquare.app.xquareinfra.domain.auth.adapter.dto.response.TokenResponse import xquare.app.xquareinfra.domain.auth.application.port.`in`.LoginUseCase import xquare.app.xquareinfra.domain.auth.application.port.out.GenerateJwtPort import xquare.app.xquareinfra.domain.user.application.port.out.FindUserPort -import xquare.app.xquareinfra.domain.user.application.port.out.SaveUserPort -import xquare.app.xquareinfra.domain.user.domain.Role -import xquare.app.xquareinfra.domain.user.domain.User import xquare.app.xquareinfra.infrastructure.exception.BusinessLogicException -import xquare.app.xquareinfra.infrastructure.exception.XquareException import xquare.app.xquareinfra.infrastructure.feign.client.dsm.DsmLoginClient -import xquare.app.xquareinfra.infrastructure.feign.client.dsm.dto.GetDsmUserInfoResponse @Transactional @Service class LoginService( private val dsmLoginClient: DsmLoginClient, - private val generateJwtPort: GenerateJwtPort + private val generateJwtPort: GenerateJwtPort, + private val findUserPort: FindUserPort ): LoginUseCase { override fun login(loginRequest: LoginRequest): TokenResponse { - val feignResponse = dsmLoginClient.getUserInfo( + val user = findUserPort.findByAccountId(loginRequest.accountId) ?: throw BusinessLogicException.USER_NOT_FOUND + val userInfo = dsmLoginClient.getUserInfo( accountId = loginRequest.accountId, password = loginRequest.password ) - if(feignResponse.status() >= 400) { - throw XquareException.UNAUTHORIZED - } - - val userInfo = Json.decodeFromString(feignResponse.body().toString()) - val tokenPair = generateJwtPort.generateTokens(userInfo.id) + val tokenPair = generateJwtPort.generateTokens(user.id.toString()) return TokenResponse( accessToken = tokenPair.first, refreshToken = tokenPair.second ) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/xquare/app/xquareinfra/domain/auth/service/SignupService.kt b/src/main/kotlin/xquare/app/xquareinfra/domain/auth/service/SignupService.kt index c66b4f9..a994812 100644 --- a/src/main/kotlin/xquare/app/xquareinfra/domain/auth/service/SignupService.kt +++ b/src/main/kotlin/xquare/app/xquareinfra/domain/auth/service/SignupService.kt @@ -1,6 +1,5 @@ package xquare.app.xquareinfra.domain.auth.service -import kotlinx.serialization.json.Json import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import xquare.app.xquareinfra.domain.auth.adapter.dto.request.SignupRequest @@ -10,9 +9,7 @@ import xquare.app.xquareinfra.domain.user.application.port.out.SaveUserPort import xquare.app.xquareinfra.domain.user.domain.Role import xquare.app.xquareinfra.domain.user.domain.User import xquare.app.xquareinfra.infrastructure.exception.BusinessLogicException -import xquare.app.xquareinfra.infrastructure.exception.XquareException import xquare.app.xquareinfra.infrastructure.feign.client.dsm.DsmLoginClient -import xquare.app.xquareinfra.infrastructure.feign.client.dsm.dto.GetDsmUserInfoResponse @Transactional @Service @@ -22,21 +19,15 @@ class SignupService( private val existsUserPort: ExistsUserPort ): SignupUseCase { override fun signup(signupRequest: SignupRequest) { - val feignResponse = dsmLoginClient.getUserInfo( + val userInfo = dsmLoginClient.getUserInfo( accountId = signupRequest.accountId, password = signupRequest.password ) - if(feignResponse.status() >= 400) { - throw XquareException.UNAUTHORIZED - } - if(existsUserPort.existsByAccountId(signupRequest.accountId)) { throw BusinessLogicException.USER_ALREADY_EXISTS } - val userInfo = Json.decodeFromString(feignResponse.body().toString()) - userInfo.run { saveUserPort.saveUser( User( diff --git a/src/main/kotlin/xquare/app/xquareinfra/infrastructure/feign/client/dsm/DsmLoginClient.kt b/src/main/kotlin/xquare/app/xquareinfra/infrastructure/feign/client/dsm/DsmLoginClient.kt index 26d46cd..12e717f 100644 --- a/src/main/kotlin/xquare/app/xquareinfra/infrastructure/feign/client/dsm/DsmLoginClient.kt +++ b/src/main/kotlin/xquare/app/xquareinfra/infrastructure/feign/client/dsm/DsmLoginClient.kt @@ -8,5 +8,5 @@ import xquare.app.xquareinfra.infrastructure.feign.client.dsm.dto.GetDsmUserInfo @FeignClient(name = "dsm-login", url = "https://prod-server.xquare.app/dsm-login") interface DsmLoginClient { @GetMapping("/user/user-data") - fun getUserInfo(@RequestParam("account_id") accountId: String, @RequestParam("password") password: String): feign.Response + fun getUserInfo(@RequestParam("account_id") accountId: String, @RequestParam("password") password: String): GetDsmUserInfoResponse } \ No newline at end of file diff --git a/src/main/kotlin/xquare/app/xquareinfra/infrastructure/feign/client/dsm/dto/GetDsmUserInfoResponse.kt b/src/main/kotlin/xquare/app/xquareinfra/infrastructure/feign/client/dsm/dto/GetDsmUserInfoResponse.kt index 1061642..53a31db 100644 --- a/src/main/kotlin/xquare/app/xquareinfra/infrastructure/feign/client/dsm/dto/GetDsmUserInfoResponse.kt +++ b/src/main/kotlin/xquare/app/xquareinfra/infrastructure/feign/client/dsm/dto/GetDsmUserInfoResponse.kt @@ -1,7 +1,11 @@ package xquare.app.xquareinfra.infrastructure.feign.client.dsm.dto +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.PropertyNamingStrategies +import com.fasterxml.jackson.databind.annotation.JsonNaming import kotlinx.serialization.Serializable +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy::class) @Serializable data class GetDsmUserInfoResponse( val id: String, @@ -12,5 +16,9 @@ data class GetDsmUserInfoResponse( val classNum: Int, val num: Int, val userRole: DsmUserRole, - val birthDay: String + val birthDay: String, + @JsonProperty("profileImgUrl") + val profileImgUrl: String, + @JsonProperty("clubName") + val clubName: String )