File tree Expand file tree Collapse file tree
domain/src/main/java/com/threegap/bitnagil/domain/auth Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -5,14 +5,12 @@ import com.threegap.bitnagil.domain.auth.model.TermsAgreement
55
66interface AuthRepository {
77 suspend fun login (socialAccessToken : String , socialType : String ): Result <AuthSession >
8-
9- suspend fun hasToken (): Boolean
10-
11- suspend fun updateAuthToken (accessToken : String , refreshToken : String ): Result <Unit >
12-
138 suspend fun submitAgreement (termsAgreement : TermsAgreement ): Result <Unit >
14-
159 suspend fun logout (): Result <Unit >
16-
1710 suspend fun withdrawal (): Result <Unit >
11+
12+ suspend fun reissueToken (refreshToken : String ): Result <AuthSession >
13+ suspend fun getRefreshToken (): String?
14+ suspend fun updateAuthToken (accessToken : String , refreshToken : String ): Result <Unit >
15+ suspend fun clearAuthToken (): Result <Unit >
1816}
Original file line number Diff line number Diff line change 1+ package com.threegap.bitnagil.domain.auth.usecase
2+
3+ import com.threegap.bitnagil.domain.auth.model.UserRole
4+ import com.threegap.bitnagil.domain.auth.repository.AuthRepository
5+ import javax.inject.Inject
6+
7+ class AutoLoginUseCase @Inject constructor(
8+ private val authRepository : AuthRepository ,
9+ ) {
10+ suspend operator fun invoke (): UserRole {
11+ val refreshToken = authRepository.getRefreshToken()
12+ if (refreshToken.isNullOrEmpty()) return UserRole .UNKNOWN
13+
14+ return authRepository.reissueToken(refreshToken)
15+ .onSuccess { authSession ->
16+ authRepository.updateAuthToken(
17+ accessToken = authSession.accessToken,
18+ refreshToken = authSession.refreshToken,
19+ )
20+ }
21+ .onFailure {
22+ authRepository.clearAuthToken()
23+ }
24+ .fold(
25+ onSuccess = { authSession -> authSession.role },
26+ onFailure = { UserRole .UNKNOWN },
27+ )
28+ }
29+ }
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments