Skip to content

Commit 8190a2c

Browse files
committed
Refactor: UserRole enum 자동 직렬화 적용
1 parent 5253df1 commit 8190a2c

4 files changed

Lines changed: 8 additions & 18 deletions

File tree

data/src/main/java/com/threegap/bitnagil/data/auth/mapper/AuthMapper.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@ import com.threegap.bitnagil.data.auth.model.request.TermsAgreementRequestDto
44
import com.threegap.bitnagil.data.auth.model.response.LoginResponseDto
55
import com.threegap.bitnagil.domain.auth.model.AuthSession
66
import com.threegap.bitnagil.domain.auth.model.TermsAgreement
7-
import com.threegap.bitnagil.domain.auth.model.UserRole
87

98
// toDomain
109
internal fun LoginResponseDto.toDomain() =
1110
AuthSession(
1211
accessToken = this.accessToken,
1312
refreshToken = this.refreshToken,
14-
role = UserRole.fromString(this.role),
13+
role = this.role,
1514
)
1615

1716
// toDto

data/src/main/java/com/threegap/bitnagil/data/auth/model/response/LoginResponseDto.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.threegap.bitnagil.data.auth.model.response
22

3+
import com.threegap.bitnagil.domain.auth.model.UserRole
34
import kotlinx.serialization.SerialName
45
import kotlinx.serialization.Serializable
56

@@ -10,5 +11,5 @@ data class LoginResponseDto(
1011
@SerialName("refreshToken")
1112
val refreshToken: String,
1213
@SerialName("role")
13-
val role: String,
14+
val role: UserRole,
1415
)
Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,13 @@
11
package com.threegap.bitnagil.domain.auth.model
22

3+
import kotlinx.serialization.Serializable
4+
5+
@Serializable
36
enum class UserRole {
47
USER,
58
GUEST,
69
ONBOARDING,
710
WITHDRAWN,
811
UNKNOWN,
912
;
10-
11-
fun isGuest() = this == GUEST
12-
13-
companion object {
14-
fun fromString(value: String): UserRole =
15-
when (value) {
16-
"USER" -> USER
17-
"GUEST" -> GUEST
18-
"ONBOARDING" -> ONBOARDING
19-
"WITHDRAWN" -> WITHDRAWN
20-
else -> UNKNOWN
21-
}
22-
}
2313
}

presentation/src/main/java/com/threegap/bitnagil/presentation/login/LoginViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.threegap.bitnagil.presentation.login
33
import android.util.Log
44
import androidx.lifecycle.ViewModel
55
import com.kakao.sdk.auth.model.OAuthToken
6+
import com.threegap.bitnagil.domain.auth.model.UserRole
67
import com.threegap.bitnagil.domain.auth.usecase.LoginUseCase
78
import com.threegap.bitnagil.presentation.login.model.LoginSideEffect
89
import com.threegap.bitnagil.presentation.login.model.LoginState
@@ -37,8 +38,7 @@ class LoginViewModel @Inject constructor(
3738
subIntent {
3839
loginUseCase(socialAccessToken = token.accessToken, socialType = KAKAO).fold(
3940
onSuccess = {
40-
val isGuest = it.role.isGuest()
41-
if (isGuest) {
41+
if (it.role == UserRole.GUEST) {
4242
postSideEffect(LoginSideEffect.NavigateToTermsAgreement)
4343
} else {
4444
postSideEffect(LoginSideEffect.NavigateToHome)

0 commit comments

Comments
 (0)