Skip to content

Commit aab5830

Browse files
authored
Merge pull request #58 from Nexters/feature/update-token-logout
로그아웃, 탈퇴 시 디바이스 토큰을 초기화 처리합니다.
2 parents 245f4f9 + 4b664fd commit aab5830

File tree

3 files changed

+34
-3
lines changed

3 files changed

+34
-3
lines changed

core/data/src/main/java/com/plottwist/core/data/auth/repository/AuthRepositoryImpl.kt

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@ import com.plottwist.core.domain.auth.repository.AuthRepository
55
import com.plottwist.core.domain.onboarding.OnboardingRepository
66
import com.plottwist.core.domain.push.repository.PushRepository
77
import com.plottwist.core.network.model.auth.DeviceInfo
8+
import com.plottwist.core.network.model.auth.DeviceInfoRequest
89
import com.plottwist.core.network.model.auth.GoogleLoginRequest
910
import com.plottwist.core.network.model.auth.TokenRequest
1011
import com.plottwist.core.network.model.onboarding.MemberNameRequest
1112
import com.plottwist.core.network.service.AuthApiService
13+
import com.plottwist.core.network.service.OnboardingService
1214
import com.plottwist.core.network.service.TukApiService
1315
import com.plottwist.core.preference.datasource.AuthDataSource
1416
import kotlinx.coroutines.flow.Flow
@@ -24,7 +26,8 @@ class AuthRepositoryImpl @Inject constructor(
2426
private val deviceInfoProvider: DeviceInfoProvider,
2527
private val pushRepository: PushRepository,
2628
private val tukApiService: TukApiService,
27-
private val onboardingRepository: OnboardingRepository
29+
private val onboardingRepository: OnboardingRepository,
30+
private val onboardingService: OnboardingService
2831
) : AuthRepository {
2932

3033
override suspend fun googleLogin(accountId: String): Result<Boolean> {
@@ -131,7 +134,7 @@ class AuthRepositoryImpl @Inject constructor(
131134
try {
132135
val refreshToken = authDataSource.getRefreshToken().firstOrNull()
133136
if(refreshToken.isNullOrEmpty()){
134-
authDataSource.clear()
137+
authDataSource.clear().collect()
135138
return Result.failure(Exception("Fail Reissue Tokens"))
136139
}
137140
val result = authApiService.refreshToken(TokenRequest(refreshToken))
@@ -147,4 +150,27 @@ class AuthRepositoryImpl @Inject constructor(
147150
return Result.failure(e)
148151
}
149152
}
153+
154+
override suspend fun resetServerFcmToken() : Result<Unit> {
155+
return try {
156+
val deviceInfo =
157+
DeviceInfoRequest(
158+
DeviceInfo(
159+
deviceId = deviceInfoProvider.getDeviceSSAID(),
160+
deviceType = deviceInfoProvider.getDeviceType(),
161+
appVersion = deviceInfoProvider.getAppVersion(),
162+
osVersion = deviceInfoProvider.getOsVersion(),
163+
deviceToken = "EXPIRED_TOKEN"
164+
)
165+
)
166+
167+
168+
val result = onboardingService.updateDeviceToken(deviceInfo)
169+
170+
return if(result.success) Result.success(Unit)
171+
else Result.failure(Exception("Fail Update FCM Token"))
172+
} catch (e: Exception){
173+
Result.failure(e)
174+
}
175+
}
150176
}

core/domain/src/main/java/com/plottwist/core/domain/auth/repository/AuthRepository.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ interface AuthRepository {
1212
fun getMemberName(): Flow<String?>
1313
fun setMemberName(name: String): Flow<Unit>
1414
suspend fun reissueTokens(): Result<Unit>
15+
suspend fun resetServerFcmToken() : Result<Unit>
1516
}

core/domain/src/main/java/com/plottwist/core/domain/auth/usecase/LogoutUseCase.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ class LogoutUseCase @Inject constructor(
99
) {
1010

1111
suspend fun logoutWithGoogle() {
12-
loginRepository.logout().collect()
12+
loginRepository.resetServerFcmToken().onSuccess {
13+
loginRepository.logout().collect()
14+
}.onFailure {
15+
loginRepository.logout().collect()
16+
}
1317
}
1418
}

0 commit comments

Comments
 (0)