Files
TVTime/app/src/main/java/com/owenlejeune/tvtime/api/GsonConverter.kt
2022-03-14 20:12:15 -04:00

28 lines
822 B
Kotlin

package com.owenlejeune.tvtime.api
import com.google.gson.GsonBuilder
import com.google.gson.JsonDeserializer
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import retrofit2.converter.gson.GsonConverterFactory
import kotlin.reflect.KClass
class GsonConverter: Converter, KoinComponent {
private val deserializers: Map<Class<*>, JsonDeserializer<*>> by inject()
override fun get(): retrofit2.Converter.Factory {
// val gson = GsonBuilder()
// .registerTypeAdapter()
// .create()
val builder = GsonBuilder()
deserializers.forEach { deserializer ->
builder.registerTypeAdapter(deserializer.key, deserializer.value)
}
val gson = builder.create()
return GsonConverterFactory.create(gson)
}
}