fix: allow unknown json fields

This commit is contained in:
Canny 2022-10-11 21:29:16 +03:00
parent a1052bff3e
commit 796dde1e3c
No known key found for this signature in database
GPG Key ID: 395CCB0AA979F27B
2 changed files with 14 additions and 4 deletions

View File

@ -6,6 +6,7 @@ import com.vk.knet.cornet.CronetKnetEngine
import com.vk.knet.cornet.config.CronetCache import com.vk.knet.cornet.config.CronetCache
import com.vk.knet.cornet.config.CronetQuic import com.vk.knet.cornet.config.CronetQuic
import com.vk.knet.cornet.pool.buffer.CronetNativeByteBufferPool import com.vk.knet.cornet.pool.buffer.CronetNativeByteBufferPool
import kotlinx.serialization.json.Json
import org.koin.android.ext.koin.androidContext import org.koin.android.ext.koin.androidContext
import org.koin.dsl.module import org.koin.dsl.module
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
@ -36,7 +37,16 @@ val httpModule = module {
} }
} }
fun json() = Json {
encodeDefaults = true
isLenient = true
ignoreUnknownKeys = true
}
single { single {
client(androidContext()) client(androidContext())
} }
single {
json()
}
} }

View File

@ -11,18 +11,18 @@ import kotlinx.coroutines.withContext
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
class GitHubRepository(cronet: CronetKnetEngine) { class GitHubRepository(cronet: CronetKnetEngine, private val json: Json) {
val client = Knet.Build(cronet) private val client = Knet.Build(cronet)
suspend fun fetchAssets() = withContext(Dispatchers.Default) { suspend fun fetchAssets() = withContext(Dispatchers.Default) {
val stream = client.execute(HttpRequest(HttpMethod.GET, "$apiUrl/tools")).body!!.asString() val stream = client.execute(HttpRequest(HttpMethod.GET, "$apiUrl/tools")).body!!.asString()
Json.decodeFromString(stream) as Tools json.decodeFromString(stream) as Tools
} }
suspend fun fetchContributors() = withContext(Dispatchers.Default) { suspend fun fetchContributors() = withContext(Dispatchers.Default) {
val stream = client.execute(HttpRequest(HttpMethod.GET,"$apiUrl/contributors")).body!!.asString() val stream = client.execute(HttpRequest(HttpMethod.GET,"$apiUrl/contributors")).body!!.asString()
Json.decodeFromString(stream) as Repositories json.decodeFromString(stream) as Repositories
} }
private companion object { private companion object {