Updated on 2026-08-14
This commit is contained in:
parent
7907c61101
commit
861f650cd4
8 changed files with 56 additions and 91 deletions
|
|
@ -0,0 +1,32 @@
|
|||
package com.tangem.datasource.config.models
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
|
||||
/** Config provider model */
|
||||
sealed class ProviderModel {
|
||||
|
||||
/**
|
||||
* Example,
|
||||
* {
|
||||
* "type": "public",
|
||||
* "url": "https://example.com"
|
||||
* }
|
||||
*/
|
||||
data class Public(
|
||||
@Json(name = "url") val url: String,
|
||||
) : ProviderModel()
|
||||
|
||||
/**
|
||||
* Example,
|
||||
* {
|
||||
* "type": "private",
|
||||
* "name": "nownodes"
|
||||
* }
|
||||
*/
|
||||
data class Private(
|
||||
@Json(name = "name") val name: String,
|
||||
) : ProviderModel()
|
||||
|
||||
/** Unsupported type */
|
||||
data object UnsupportedType : ProviderModel()
|
||||
}
|
||||
|
|
@ -1,11 +1,13 @@
|
|||
package com.tangem.datasource.di
|
||||
|
||||
import com.squareup.moshi.Moshi
|
||||
import com.squareup.moshi.adapters.PolymorphicJsonAdapterFactory
|
||||
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
|
||||
import com.tangem.common.json.MoshiJsonConverter
|
||||
import com.tangem.datasource.api.common.BigDecimalAdapter
|
||||
import com.tangem.datasource.api.common.DateTimeAdapter
|
||||
import com.tangem.datasource.api.common.LocalDateAdapter
|
||||
import com.tangem.datasource.config.models.ProviderModel
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
|
|
@ -21,6 +23,12 @@ class MoshiModule {
|
|||
@NetworkMoshi
|
||||
fun provideNetworkMoshi(): Moshi {
|
||||
return Moshi.Builder()
|
||||
.add(
|
||||
PolymorphicJsonAdapterFactory.of(ProviderModel::class.java, "type")
|
||||
.withSubtype(ProviderModel.Public::class.java, "public")
|
||||
.withSubtype(ProviderModel.Private::class.java, "private")
|
||||
.withDefaultValue(ProviderModel.UnsupportedType),
|
||||
)
|
||||
.add(BigDecimalAdapter())
|
||||
.add(LocalDateAdapter())
|
||||
.add(DateTimeAdapter())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue