package audio.funkwhale.ffa.repositories import android.content.Context import audio.funkwhale.ffa.utils.OtterResponse import audio.funkwhale.ffa.utils.Radio import audio.funkwhale.ffa.utils.RadiosCache import audio.funkwhale.ffa.utils.RadiosResponse import com.github.kittinunf.fuel.gson.gsonDeserializerOf import com.google.gson.reflect.TypeToken import java.io.BufferedReader class RadiosRepository(override val context: Context?) : Repository() { override val cacheId = "radios" override val upstream = HttpUpstream>(HttpUpstream.Behavior.Progressive, "/api/v1/radios/radios/?ordering=name", object : TypeToken() {}.type) override fun cache(data: List) = RadiosCache(data) override fun uncache(reader: BufferedReader) = gsonDeserializerOf(RadiosCache::class.java).deserialize(reader) override fun onDataFetched(data: List): List { return data .map { radio -> radio.apply { radio_type = "custom" } } .toMutableList() } }