Skip to content

Commit 554f9f3

Browse files
committed
[BOOK-197] refactor: autoLoginState AuthRepository로 이동
code style check success
1 parent 4d4a031 commit 554f9f3

File tree

7 files changed

+24
-29
lines changed

7 files changed

+24
-29
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package com.ninecraft.booket.core.data.api.repository
22

3+
import com.ninecraft.booket.core.model.AutoLoginState
4+
import kotlinx.coroutines.flow.Flow
5+
36
interface AuthRepository {
47
suspend fun login(accessToken: String): Result<Unit>
58

69
suspend fun logout(): Result<Unit>
710

811
suspend fun agreeTerms(termsAgreed: Boolean): Result<Unit>
12+
13+
val autoLoginState: Flow<AutoLoginState>
914
}
Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.ninecraft.booket.core.data.api.repository
22

3-
import com.ninecraft.booket.core.model.AutoLoginState
43
import com.ninecraft.booket.core.model.OnboardingState
54
import com.ninecraft.booket.core.model.UserProfileModel
65
import kotlinx.coroutines.flow.Flow
@@ -11,6 +10,4 @@ interface UserRepository {
1110
val onboardingState: Flow<OnboardingState>
1211

1312
suspend fun setOnboardingCompleted(isCompleted: Boolean)
14-
15-
val autoLoginState: Flow<AutoLoginState>
1613
}

core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultAuthRepository.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,18 @@ package com.ninecraft.booket.core.data.impl.repository
33
import com.ninecraft.booket.core.common.utils.runSuspendCatching
44
import com.ninecraft.booket.core.data.api.repository.AuthRepository
55
import com.ninecraft.booket.core.datastore.api.datasource.TokenDataSource
6+
import com.ninecraft.booket.core.model.AutoLoginState
67
import com.ninecraft.booket.core.network.request.LoginRequest
78
import com.ninecraft.booket.core.network.request.TermsAgreementRequest
89
import com.ninecraft.booket.core.network.service.ReedService
10+
import kotlinx.coroutines.flow.map
911
import javax.inject.Inject
1012

1113
private const val KAKAO_PROVIDER_TYPE = "KAKAO"
1214

1315
internal class DefaultAuthRepository @Inject constructor(
1416
private val service: ReedService,
15-
private val tokenDatasource: TokenDataSource,
17+
private val tokenDataSource: TokenDataSource,
1618
) : AuthRepository {
1719
override suspend fun login(accessToken: String) = runSuspendCatching {
1820
val response = service.login(
@@ -35,13 +37,21 @@ internal class DefaultAuthRepository @Inject constructor(
3537
}
3638

3739
private suspend fun saveTokens(accessToken: String, refreshToken: String) {
38-
tokenDatasource.apply {
40+
tokenDataSource.apply {
3941
setAccessToken(accessToken)
4042
setRefreshToken(refreshToken)
4143
}
4244
}
4345

4446
private suspend fun clearTokens() {
45-
tokenDatasource.clearTokens()
47+
tokenDataSource.clearTokens()
4648
}
49+
50+
override val autoLoginState = tokenDataSource.accessToken
51+
.map { accessToken ->
52+
when {
53+
accessToken.isBlank() -> AutoLoginState.NOT_LOGGED_IN
54+
else -> AutoLoginState.LOGGED_IN
55+
}
56+
}
4757
}

core/data/impl/src/main/kotlin/com/ninecraft/booket/core/data/impl/repository/DefaultUserRepository.kt

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,12 @@ import com.ninecraft.booket.core.common.utils.runSuspendCatching
44
import com.ninecraft.booket.core.data.api.repository.UserRepository
55
import com.ninecraft.booket.core.data.impl.mapper.toModel
66
import com.ninecraft.booket.core.datastore.api.datasource.OnboardingDataSource
7-
import com.ninecraft.booket.core.datastore.api.datasource.TokenDataSource
8-
import com.ninecraft.booket.core.model.AutoLoginState
97
import com.ninecraft.booket.core.network.service.ReedService
10-
import kotlinx.coroutines.flow.Flow
11-
import kotlinx.coroutines.flow.map
128
import javax.inject.Inject
139

1410
internal class DefaultUserRepository @Inject constructor(
1511
private val service: ReedService,
1612
private val onboardingDataSource: OnboardingDataSource,
17-
private val tokenDataSource: TokenDataSource,
1813
) : UserRepository {
1914
override suspend fun getUserProfile() = runSuspendCatching {
2015
service.getUserProfile().toModel()
@@ -25,12 +20,4 @@ internal class DefaultUserRepository @Inject constructor(
2520
override suspend fun setOnboardingCompleted(isCompleted: Boolean) {
2621
onboardingDataSource.setOnboardingCompleted(isCompleted)
2722
}
28-
29-
override val autoLoginState: Flow<AutoLoginState> = tokenDataSource.accessToken
30-
.map { accessToken ->
31-
when {
32-
accessToken.isBlank() -> AutoLoginState.NOT_LOGGED_IN
33-
else -> AutoLoginState.LOGGED_IN
34-
}
35-
}
3623
}

core/datastore/api/src/main/kotlin/com/ninecraft/booket/core/datastore/api/datasource/AutoLoginDataSource.kt

Lines changed: 0 additions & 8 deletions
This file was deleted.

core/model/src/main/kotlin/com/ninecraft/booket/core/model/AutoLoginState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ enum class AutoLoginState {
44
IDLE,
55
LOGGED_IN,
66
NOT_LOGGED_IN,
7-
}
7+
}

feature/main/src/main/kotlin/com/ninecraft/booket/feature/main/splash/SplashPresenter.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.ninecraft.booket.feature.main.splash
22

33
import androidx.compose.runtime.Composable
44
import androidx.compose.runtime.getValue
5+
import com.ninecraft.booket.core.data.api.repository.AuthRepository
56
import com.ninecraft.booket.core.data.api.repository.UserRepository
67
import com.ninecraft.booket.core.model.AutoLoginState
78
import com.ninecraft.booket.core.model.OnboardingState
@@ -22,12 +23,13 @@ import dagger.hilt.android.components.ActivityRetainedComponent
2223
class SplashPresenter @AssistedInject constructor(
2324
@Assisted private val navigator: Navigator,
2425
private val userRepository: UserRepository,
26+
private val authRepository: AuthRepository,
2527
) : Presenter<SplashUiState> {
2628

2729
@Composable
2830
override fun present(): SplashUiState {
2931
val onboardingState by userRepository.onboardingState.collectAsRetainedState(initial = OnboardingState.IDLE)
30-
val autoLoginState by userRepository.autoLoginState.collectAsRetainedState(initial = AutoLoginState.IDLE)
32+
val autoLoginState by authRepository.autoLoginState.collectAsRetainedState(initial = AutoLoginState.IDLE)
3133

3234
RememberedEffect(onboardingState, autoLoginState) {
3335
when (onboardingState) {
@@ -40,9 +42,11 @@ class SplashPresenter @AssistedInject constructor(
4042
AutoLoginState.LOGGED_IN -> {
4143
navigator.resetRoot(BottomNavigationScreen)
4244
}
45+
4346
AutoLoginState.NOT_LOGGED_IN -> {
4447
navigator.resetRoot(LoginScreen)
4548
}
49+
4650
AutoLoginState.IDLE -> {
4751
// 자동 로그인 상태를 기다리는 중
4852
}

0 commit comments

Comments
 (0)