Updated on 2026-08-14

This commit is contained in:
Tangem 2024-12-09 17:44:25 +05:00
parent e0594fa9f8
commit 462dd631b7
17 changed files with 199 additions and 25 deletions

View file

@ -1,6 +1,10 @@
package com.tangem.datasource.di
import com.tangem.datasource.local.datastore.RuntimeDataStore
import com.tangem.datasource.local.onramp.countries.DefaultOnrampCountriesStore
import com.tangem.datasource.local.onramp.countries.OnrampCountriesStore
import com.tangem.datasource.local.onramp.currencies.DefaultOnrampCurrenciesStore
import com.tangem.datasource.local.onramp.currencies.OnrampCurrenciesStore
import com.tangem.datasource.local.onramp.pairs.DefaultOnrampPairsStore
import com.tangem.datasource.local.onramp.pairs.OnrampPairsStore
import com.tangem.datasource.local.onramp.paymentmethods.DefaultOnrampPaymentMethodsStore
@ -34,4 +38,16 @@ internal object OnrampStoreModule {
fun provideOnrampQuotesStore(): OnrampQuotesStore {
return DefaultOnrampQuotesStore(dataStore = RuntimeDataStore())
}
@Provides
@Singleton
fun provideOnrampCountriesStore(): OnrampCountriesStore {
return DefaultOnrampCountriesStore(dataStore = RuntimeDataStore())
}
@Provides
@Singleton
fun provideOnrampCurrencies(): OnrampCurrenciesStore {
return DefaultOnrampCurrenciesStore(dataStore = RuntimeDataStore())
}
}

View file

@ -0,0 +1,11 @@
package com.tangem.datasource.local.onramp.countries
import com.tangem.datasource.local.datastore.core.StringKeyDataStore
import com.tangem.datasource.local.datastore.core.StringKeyDataStoreDecorator
import com.tangem.domain.onramp.model.OnrampCountry
internal class DefaultOnrampCountriesStore(
dataStore: StringKeyDataStore<List<OnrampCountry>>,
) : OnrampCountriesStore, StringKeyDataStoreDecorator<String, List<OnrampCountry>>(dataStore) {
override fun provideStringKey(key: String): String = key
}

View file

@ -0,0 +1,11 @@
package com.tangem.datasource.local.onramp.countries
import com.tangem.domain.onramp.model.OnrampCountry
import kotlinx.coroutines.flow.Flow
interface OnrampCountriesStore {
suspend fun getSyncOrNull(key: String): List<OnrampCountry>?
fun get(key: String): Flow<List<OnrampCountry>>
suspend fun store(key: String, value: List<OnrampCountry>)
suspend fun clear()
}

View file

@ -0,0 +1,11 @@
package com.tangem.datasource.local.onramp.currencies
import com.tangem.datasource.local.datastore.core.StringKeyDataStore
import com.tangem.datasource.local.datastore.core.StringKeyDataStoreDecorator
import com.tangem.domain.onramp.model.OnrampCurrency
internal class DefaultOnrampCurrenciesStore(
dataStore: StringKeyDataStore<List<OnrampCurrency>>,
) : OnrampCurrenciesStore, StringKeyDataStoreDecorator<String, List<OnrampCurrency>>(dataStore) {
override fun provideStringKey(key: String): String = key
}

View file

@ -0,0 +1,11 @@
package com.tangem.datasource.local.onramp.currencies
import com.tangem.domain.onramp.model.OnrampCurrency
import kotlinx.coroutines.flow.Flow
interface OnrampCurrenciesStore {
suspend fun getSyncOrNull(key: String): List<OnrampCurrency>?
fun get(key: String): Flow<List<OnrampCurrency>>
suspend fun store(key: String, value: List<OnrampCurrency>)
suspend fun clear()
}