Updated on 2026-08-14

This commit is contained in:
Tangem 2024-11-21 14:50:12 +05:00
parent defd947695
commit f53ffa9a64
14 changed files with 206 additions and 13 deletions

View file

@ -1,8 +1,12 @@
package com.tangem.datasource.di
import com.tangem.datasource.local.datastore.RuntimeDataStore
import com.tangem.datasource.local.onramp.DefaultOnrampPaymentMethodsStore
import com.tangem.datasource.local.onramp.OnrampPaymentMethodsStore
import com.tangem.datasource.local.onramp.pairs.DefaultOnrampPairsStore
import com.tangem.datasource.local.onramp.pairs.OnrampPairsStore
import com.tangem.datasource.local.onramp.paymentmethods.DefaultOnrampPaymentMethodsStore
import com.tangem.datasource.local.onramp.paymentmethods.OnrampPaymentMethodsStore
import com.tangem.datasource.local.onramp.quotes.DefaultOnrampQuotesStore
import com.tangem.datasource.local.onramp.quotes.OnrampQuotesStore
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
@ -18,4 +22,16 @@ internal object OnrampStoreModule {
fun provideOnrampPaymentMethodsStore(): OnrampPaymentMethodsStore {
return DefaultOnrampPaymentMethodsStore(dataStore = RuntimeDataStore())
}
@Provides
@Singleton
fun provideOnrampPairsStore(): OnrampPairsStore {
return DefaultOnrampPairsStore(dataStore = RuntimeDataStore())
}
@Provides
@Singleton
fun provideOnrampQuotesStore(): OnrampQuotesStore {
return DefaultOnrampQuotesStore(dataStore = RuntimeDataStore())
}
}

View file

@ -0,0 +1,11 @@
package com.tangem.datasource.local.onramp.pairs
import com.tangem.datasource.api.onramp.models.response.model.OnrampPairDTO
import com.tangem.datasource.local.datastore.core.StringKeyDataStore
import com.tangem.datasource.local.datastore.core.StringKeyDataStoreDecorator
internal class DefaultOnrampPairsStore(
dataStore: StringKeyDataStore<List<OnrampPairDTO>>,
) : OnrampPairsStore, StringKeyDataStoreDecorator<String, List<OnrampPairDTO>>(dataStore) {
override fun provideStringKey(key: String): String = key
}

View file

@ -0,0 +1,9 @@
package com.tangem.datasource.local.onramp.pairs
import com.tangem.datasource.api.onramp.models.response.model.OnrampPairDTO
interface OnrampPairsStore {
suspend fun getSyncOrNull(key: String): List<OnrampPairDTO>?
suspend fun store(key: String, value: List<OnrampPairDTO>)
suspend fun clear()
}

View file

@ -1,4 +1,4 @@
package com.tangem.datasource.local.onramp
package com.tangem.datasource.local.onramp.paymentmethods
import com.tangem.datasource.api.onramp.models.response.model.PaymentMethodDTO
import com.tangem.datasource.local.datastore.core.StringKeyDataStore

View file

@ -1,4 +1,4 @@
package com.tangem.datasource.local.onramp
package com.tangem.datasource.local.onramp.paymentmethods
import com.tangem.datasource.api.onramp.models.response.model.PaymentMethodDTO
@ -9,4 +9,6 @@ interface OnrampPaymentMethodsStore {
suspend fun store(key: String, value: List<PaymentMethodDTO>)
suspend fun contains(key: String): Boolean
suspend fun clear()
}

View file

@ -0,0 +1,11 @@
package com.tangem.datasource.local.onramp.quotes
import com.tangem.datasource.api.onramp.models.response.OnrampQuoteResponse
import com.tangem.datasource.local.datastore.core.StringKeyDataStore
import com.tangem.datasource.local.datastore.core.StringKeyDataStoreDecorator
internal class DefaultOnrampQuotesStore(
dataStore: StringKeyDataStore<List<OnrampQuoteResponse>>,
) : OnrampQuotesStore, StringKeyDataStoreDecorator<String, List<OnrampQuoteResponse>>(dataStore) {
override fun provideStringKey(key: String): String = key
}

View file

@ -0,0 +1,9 @@
package com.tangem.datasource.local.onramp.quotes
import com.tangem.datasource.api.onramp.models.response.OnrampQuoteResponse
interface OnrampQuotesStore {
suspend fun getSyncOrNull(key: String): List<OnrampQuoteResponse>?
suspend fun store(key: String, value: List<OnrampQuoteResponse>)
suspend fun clear()
}