Skip to content
This repository was archived by the owner on Jul 7, 2025. It is now read-only.

Commit 2e9b36d

Browse files
authored
Merge pull request #107 from ASAP-Lettering/ASAP-304
ASAP-304 feat: 온보딩 여부 저장하는 컬럼 추가
2 parents 1d0af41 + 6cf5b34 commit 2e9b36d

16 files changed

Lines changed: 65 additions & 17 deletions

File tree

.github/workflows/Integration.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,5 @@ jobs:
3535

3636
- name: Build With Gradle
3737
run: |
38-
./gradlew build --info
38+
./gradlew build
3939

Application-Module/src/main/kotlin/com/asap/application/user/port/in/SocialLoginUsecase.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ interface SocialLoginUsecase {
1111

1212
sealed class Response {
1313
}
14+
1415
data class Success(
1516
val accessToken: String,
16-
val refreshToken: String
17+
val refreshToken: String,
18+
val isProcessedOnboarding: Boolean
1719
) : Response()
1820

1921
data class NonRegistered(

Application-Module/src/main/kotlin/com/asap/application/user/port/in/UpdateUserUsecase.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,16 @@ import java.time.LocalDate
55
interface UpdateUserUsecase {
66
fun executeFor(command: Command.Birthday)
77

8+
fun executeFor(command: Command.Onboarding)
9+
810
sealed class Command {
911
data class Birthday(
1012
val userId: String,
1113
val birthday: LocalDate,
1214
) : Command()
15+
16+
data class Onboarding(
17+
val userId: String,
18+
) : Command()
1319
}
1420
}

Application-Module/src/main/kotlin/com/asap/application/user/service/SocialLoginService.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ class SocialLoginService(
2222
authInfoRetrievePort.getAuthInfo(SocialLoginProvider.parse(command.provider), command.accessToken)
2323
val userAuth = userAuthManagementPort.getUserAuth(authInfo.socialId, authInfo.socialLoginProvider)
2424
return userAuth?.let {
25-
userManagementPort.getUser(userAuth.userId)?.let {
26-
val accessToken = userTokenConvertPort.generateAccessToken(it)
27-
val refreshToken = userTokenConvertPort.generateRefreshToken(it)
28-
userTokenManagementPort.saveUserToken(UserToken(token = refreshToken, userId = it.id))
29-
SocialLoginUsecase.Success(accessToken, refreshToken)
25+
userManagementPort.getUser(userAuth.userId)?.let { user ->
26+
val accessToken = userTokenConvertPort.generateAccessToken(user)
27+
val refreshToken = userTokenConvertPort.generateRefreshToken(user)
28+
userTokenManagementPort.saveUserToken(UserToken(token = refreshToken, userId = user.id))
29+
SocialLoginUsecase.Success(accessToken, refreshToken, user.isProcessedOnboarding())
3030
} ?: run {
3131
throw DefaultException.InvalidStateException("사용자 인증정보만 존재합니다. - ${userAuth.userId}")
3232
}

Application-Module/src/main/kotlin/com/asap/application/user/service/UserCommandService.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,14 @@ class UserCommandService(
8787
userManagementPort.save(this)
8888
}
8989
}
90+
91+
override fun executeFor(command: UpdateUserUsecase.Command.Onboarding) {
92+
userManagementPort
93+
.getUserNotNull(DomainId(command.userId))
94+
.apply {
95+
this.updateOnboarding()
96+
userManagementPort.save(this)
97+
}
98+
99+
}
90100
}

Application-Module/src/testFixtures/kotlin/com/asap/application/user/UserApplicationConfig.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@ package com.asap.application.user
22

33
import com.asap.application.user.port.out.UserAuthManagementPort
44
import com.asap.application.user.port.out.UserManagementPort
5-
import com.asap.application.user.port.out.UserTokenManagementPort
65
import org.springframework.boot.test.context.TestConfiguration
76
import org.springframework.context.annotation.Bean
87

98
@TestConfiguration
109
class UserApplicationConfig(
11-
private val userTokenManagementPort: UserTokenManagementPort,
1210
private val userManagementPort: UserManagementPort,
1311
private val userAuthManagementPort: UserAuthManagementPort,
1412
) {
1513
@Bean
16-
fun userMockGenerator(): UserMockManager = UserMockManager(userTokenManagementPort, userManagementPort, userAuthManagementPort)
14+
fun userMockGenerator(): UserMockManager = UserMockManager(userManagementPort, userAuthManagementPort)
1715
}

Application-Module/src/testFixtures/kotlin/com/asap/application/user/UserMockManager.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.asap.application.user
22

33
import com.asap.application.user.port.out.UserAuthManagementPort
44
import com.asap.application.user.port.out.UserManagementPort
5-
import com.asap.application.user.port.out.UserTokenManagementPort
65
import com.asap.domain.common.DomainId
76
import com.asap.domain.user.entity.User
87
import com.asap.domain.user.entity.UserAuth
@@ -11,7 +10,6 @@ import com.asap.domain.user.vo.UserPermission
1110
import java.time.LocalDate
1211

1312
class UserMockManager(
14-
private val tokenManagementPort: UserTokenManagementPort,
1513
private val userManagementPort: UserManagementPort,
1614
private val userAuthManagementPort: UserAuthManagementPort,
1715
) {
@@ -35,6 +33,7 @@ class UserMockManager(
3533
permission = UserPermission(true, true, true),
3634
birthday = LocalDate.now(),
3735
email = "email",
36+
onboardingAt = null,
3837
),
3938
)
4039

Bootstrap-Module/src/main/kotlin/com/asap/bootstrap/auth/controller/AuthController.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ class AuthController(
2929
is SocialLoginUsecase.Success -> ResponseEntity.ok(
3030
SocialLoginResponse.Success(
3131
response.accessToken,
32-
response.refreshToken
32+
response.refreshToken,
33+
response.isProcessedOnboarding
3334
)
3435
)
3536

Bootstrap-Module/src/main/kotlin/com/asap/bootstrap/auth/dto/SocialLoginResponse.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@ import io.swagger.v3.oas.annotations.media.Schema
99
SocialLoginResponse.NonRegistered::class
1010
]
1111
)
12-
sealed class SocialLoginResponse{
12+
sealed class SocialLoginResponse {
1313

1414
@Schema(description = "기존 회원 로그인 성공")
1515
data class Success(
1616
@Schema(description = "access token")
1717
val accessToken: String,
1818
@Schema(description = "refresh token")
19-
val refreshToken: String
19+
val refreshToken: String,
20+
val isProcessedOnboarding: Boolean
2021
) : SocialLoginResponse()
2122

2223

Bootstrap-Module/src/main/kotlin/com/asap/bootstrap/user/api/UserApi.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,10 @@ interface UserApi {
100100
@AccessUser userId: String,
101101
@RequestBody request: UpdateBirthdayRequest,
102102
)
103+
104+
@Operation(summary = "온보딩 여부 저장")
105+
@PutMapping("/info/onboarding")
106+
fun updateOnboarding(
107+
@AccessUser userId: String,
108+
)
103109
}

0 commit comments

Comments
 (0)