Updated on 2026-08-14

This commit is contained in:
Tangem 2025-01-14 13:45:57 +03:00
parent 113c9cb46e
commit 4192ccab33
34 changed files with 444 additions and 81 deletions

View file

@ -0,0 +1,23 @@
package com.tangem.data.visa
import com.tangem.data.visa.converter.VisaActivationStatusConverter
import com.tangem.datasource.api.visa.TangemVisaApi
import com.tangem.domain.visa.model.VisaActivationRemoteState
import com.tangem.domain.visa.repository.VisaActivationRepository
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.withContext
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
internal class DefaultVisaActivationRepository @Inject constructor(
private val visaApi: TangemVisaApi,
private val dispatcherProvider: CoroutineDispatcherProvider,
private val visaActivationStatusConverter: VisaActivationStatusConverter,
) : VisaActivationRepository {
override suspend fun getActivationRemoteState(): VisaActivationRemoteState = withContext(dispatcherProvider.io) {
visaActivationStatusConverter.convert(visaApi.getRemoteActivationStatus())
// TODO implement refreshing access token if it's expired
}
}

View file

@ -0,0 +1,15 @@
package com.tangem.data.visa.converter
import com.tangem.datasource.api.visa.models.response.CardActivationRemoteStateResponse
import com.tangem.domain.visa.model.VisaActivationRemoteState
import com.tangem.utils.converter.Converter
import javax.inject.Inject
class VisaActivationStatusConverter @Inject constructor() :
Converter<CardActivationRemoteStateResponse, VisaActivationRemoteState> {
override fun convert(value: CardActivationRemoteStateResponse): VisaActivationRemoteState {
// TODO Will be implemented in the future
return VisaActivationRemoteState.Activated
}
}

View file

@ -1,7 +1,9 @@
package com.tangem.data.visa.di
import com.tangem.data.visa.DefaultVisaActivationRepository
import com.tangem.data.visa.DefaultVisaAuthRepository
import com.tangem.data.visa.DummyVisaRepository
import com.tangem.domain.visa.repository.VisaActivationRepository
import com.tangem.domain.visa.repository.VisaAuthRepository
import com.tangem.domain.visa.repository.VisaRepository
import dagger.Binds
@ -33,4 +35,8 @@ internal interface VisaDataBindsModule {
@Binds
@Singleton
fun bindVisaAuthRepository(repository: DefaultVisaAuthRepository): VisaAuthRepository
@Binds
@Singleton
fun bindVisaActivationRepository(repository: DefaultVisaActivationRepository): VisaActivationRepository
}