@@ -2,7 +2,6 @@ package com.afterpay.android.internal
22
33import com.afterpay.android.BuildConfig
44import kotlinx.serialization.Serializable
5- import kotlinx.serialization.decodeFromString
65import kotlinx.serialization.encodeToString
76import kotlinx.serialization.json.Json
87import java.io.InvalidObjectException
@@ -12,12 +11,13 @@ import javax.net.ssl.HttpsURLConnection
1211import kotlin.Exception
1312
1413internal object ApiV3 {
14+ private val json = Json { ignoreUnknownKeys = true }
1515
1616 internal inline fun <reified T , reified B > request (url : URL , method : HttpVerb , body : B ): Result <T > {
1717 val connection = url.openConnection() as HttpsURLConnection
1818 return try {
1919 configure(connection, method)
20- val payload = (body as ? String ) ? : Json .encodeToString(body)
20+ val payload = (body as ? String ) ? : json .encodeToString(body)
2121
2222 val outputStreamWriter = OutputStreamWriter (connection.outputStream)
2323 outputStreamWriter.write(payload)
@@ -26,13 +26,13 @@ internal object ApiV3 {
2626 // TODO: Status code checking, error object decoding, bypass if return type is Unit
2727 val data = connection.inputStream.bufferedReader().readText()
2828 connection.inputStream.close()
29- val result = Json .decodeFromString<T >(data)
29+ val result = json .decodeFromString<T >(data)
3030 Result .success(result)
3131 } catch (exception: Exception ) {
3232 try {
3333 val data = connection.errorStream.bufferedReader().readText()
3434 connection.errorStream.close()
35- val result = Json .decodeFromString<ApiErrorV3 >(data)
35+ val result = json .decodeFromString<ApiErrorV3 >(data)
3636 Result .failure(InvalidObjectException (result.message))
3737 } catch (_: Exception ) {
3838 Result .failure(exception)
@@ -46,7 +46,7 @@ internal object ApiV3 {
4646 val connection = url.openConnection() as HttpsURLConnection
4747 return try {
4848 configure(connection, method)
49- val payload = (body as ? String ) ? : Json .encodeToString(body)
49+ val payload = (body as ? String ) ? : json .encodeToString(body)
5050
5151 val outputStreamWriter = OutputStreamWriter (connection.outputStream)
5252 outputStreamWriter.write(payload)
@@ -61,7 +61,7 @@ internal object ApiV3 {
6161 try {
6262 val data = connection.errorStream.bufferedReader().readText()
6363 connection.errorStream.close()
64- val result = Json .decodeFromString<ApiErrorV3 >(data)
64+ val result = json .decodeFromString<ApiErrorV3 >(data)
6565 Result .failure(InvalidObjectException (result.message))
6666 } catch (_: Exception ) {
6767 Result .failure(exception)
@@ -78,13 +78,13 @@ internal object ApiV3 {
7878
7979 val data = connection.inputStream.bufferedReader().readText()
8080 connection.inputStream.close()
81- val result = Json .decodeFromString<T >(data)
81+ val result = json .decodeFromString<T >(data)
8282 Result .success(result)
8383 } catch (exception: Exception ) {
8484 try {
8585 val data = connection.errorStream.bufferedReader().readText()
8686 connection.errorStream.close()
87- val result = Json .decodeFromString<ApiErrorV3 >(data)
87+ val result = json .decodeFromString<ApiErrorV3 >(data)
8888 Result .failure(InvalidObjectException (result.message))
8989 } catch (_: Exception ) {
9090 Result .failure(exception)
0 commit comments