@@ -5,10 +5,12 @@ import com.plottwist.core.domain.auth.repository.AuthRepository
55import com.plottwist.core.domain.onboarding.OnboardingRepository
66import com.plottwist.core.domain.push.repository.PushRepository
77import com.plottwist.core.network.model.auth.DeviceInfo
8+ import com.plottwist.core.network.model.auth.DeviceInfoRequest
89import com.plottwist.core.network.model.auth.GoogleLoginRequest
910import com.plottwist.core.network.model.auth.TokenRequest
1011import com.plottwist.core.network.model.onboarding.MemberNameRequest
1112import com.plottwist.core.network.service.AuthApiService
13+ import com.plottwist.core.network.service.OnboardingService
1214import com.plottwist.core.network.service.TukApiService
1315import com.plottwist.core.preference.datasource.AuthDataSource
1416import 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}
0 commit comments