From 023ea96d26a65d29d408ef78c9405411bb842afd Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 16 May 2022 19:58:31 +0200 Subject: -remove multiplatform dependency, library upgrade WIP --- .../main/java/net/taler/merchantlib/MerchantApi.kt | 27 ++++++++-------------- 1 file changed, 10 insertions(+), 17 deletions(-) (limited to 'merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt') diff --git a/merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt b/merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt index 0d22f91..d973813 100644 --- a/merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt +++ b/merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt @@ -17,21 +17,22 @@ package net.taler.merchantlib import io.ktor.client.HttpClient +import io.ktor.client.call.body import io.ktor.client.engine.okhttp.OkHttp -import io.ktor.client.features.json.JsonFeature -import io.ktor.client.features.json.serializer.KotlinxSerializer +import io.ktor.client.plugins.contentnegotiation.ContentNegotiation import io.ktor.client.request.delete import io.ktor.client.request.get import io.ktor.client.request.header import io.ktor.client.request.post +import io.ktor.client.request.setBody import io.ktor.http.ContentType.Application.Json import io.ktor.http.HttpHeaders.Authorization import io.ktor.http.contentType import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -import kotlinx.serialization.json.Json import net.taler.merchantlib.Response.Companion.response +import io.ktor.serialization.kotlinx.json.* class MerchantApi( private val httpClient: HttpClient = getDefaultHttpClient(), @@ -52,8 +53,8 @@ class MerchantApi( httpClient.post(merchantConfig.urlFor("private/orders")) { header(Authorization, "ApiKey ${merchantConfig.apiKey}") contentType(Json) - body = orderRequest - } as PostOrderResponse + setBody(orderRequest) + }.body() } } @@ -64,7 +65,7 @@ class MerchantApi( response { httpClient.get(merchantConfig.urlFor("private/orders/$orderId")) { header(Authorization, "ApiKey ${merchantConfig.apiKey}") - } as CheckPaymentResponse + }.body() } } @@ -97,7 +98,7 @@ class MerchantApi( httpClient.post(merchantConfig.urlFor("private/orders/$orderId/refund")) { header(Authorization, "ApiKey ${merchantConfig.apiKey}") contentType(Json) - body = request + setBody(request) } as RefundResponse } } @@ -109,15 +110,7 @@ fun getDefaultHttpClient(): HttpClient = HttpClient(OkHttp) { retryOnConnectionFailure(true) } } - install(JsonFeature) { - serializer = getSerializer() + install(ContentNegotiation) { + json() } } - -fun getSerializer() = KotlinxSerializer( - Json { - encodeDefaults = false - ignoreUnknownKeys = true - classDiscriminator = "order_status" - } -) -- cgit v1.2.3