From 1e06d7fe88dc8e61c2d2cf234daf1f1330d5333c Mon Sep 17 00:00:00 2001 From: Keiju Matsumoto Date: Wed, 22 May 2019 20:58:38 +0900 Subject: [PATCH] [Kotlin] Fix parse error when using custom field names with @Json (#2944) * Fix to use isEmpty method * Add KotlinJsonAdapterFactory to moshi adapter * Update petstore sample --- .../kotlin-client/infrastructure/ApiClient.kt.mustache | 4 +++- .../org/openapitools/client/infrastructure/ApiClient.kt | 4 +++- .../org/openapitools/client/infrastructure/ApiClient.kt | 4 +++- .../org/openapitools/client/infrastructure/ApiClient.kt | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/kotlin-client/infrastructure/ApiClient.kt.mustache b/modules/openapi-generator/src/main/resources/kotlin-client/infrastructure/ApiClient.kt.mustache index c0d5371c007..04c5d526beb 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-client/infrastructure/ApiClient.kt.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-client/infrastructure/ApiClient.kt.mustache @@ -1,6 +1,7 @@ package {{packageName}}.infrastructure import com.squareup.moshi.FromJson +import com.squareup.moshi.KotlinJsonAdapterFactory import com.squareup.moshi.Moshi import com.squareup.moshi.ToJson import okhttp3.OkHttpClient @@ -58,7 +59,7 @@ open class ApiClient(val baseUrl: String) { return null } val bodyContent = body.string() - if (bodyContent.length == 0) { + if (bodyContent.isEmpty()) { return null } return when(mediaType) { @@ -69,6 +70,7 @@ open class ApiClient(val baseUrl: String) { fun fromJson(s: String) = UUID.fromString(s) }) .add(ByteArrayAdapter()) + .add(KotlinJsonAdapterFactory()) .build().adapter(T::class.java).fromJson(bodyContent) else -> TODO("responseBody currently only supports JSON body.") } diff --git a/samples/client/petstore/kotlin-string/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt b/samples/client/petstore/kotlin-string/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt index c075b4fbb76..c2791fdb3e0 100644 --- a/samples/client/petstore/kotlin-string/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt +++ b/samples/client/petstore/kotlin-string/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt @@ -1,6 +1,7 @@ package org.openapitools.client.infrastructure import com.squareup.moshi.FromJson +import com.squareup.moshi.KotlinJsonAdapterFactory import com.squareup.moshi.Moshi import com.squareup.moshi.ToJson import okhttp3.OkHttpClient @@ -58,7 +59,7 @@ open class ApiClient(val baseUrl: String) { return null } val bodyContent = body.string() - if (bodyContent.length == 0) { + if (bodyContent.isEmpty()) { return null } return when(mediaType) { @@ -69,6 +70,7 @@ open class ApiClient(val baseUrl: String) { fun fromJson(s: String) = UUID.fromString(s) }) .add(ByteArrayAdapter()) + .add(KotlinJsonAdapterFactory()) .build().adapter(T::class.java).fromJson(bodyContent) else -> TODO("responseBody currently only supports JSON body.") } diff --git a/samples/client/petstore/kotlin-threetenbp/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt b/samples/client/petstore/kotlin-threetenbp/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt index c075b4fbb76..c2791fdb3e0 100644 --- a/samples/client/petstore/kotlin-threetenbp/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt +++ b/samples/client/petstore/kotlin-threetenbp/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt @@ -1,6 +1,7 @@ package org.openapitools.client.infrastructure import com.squareup.moshi.FromJson +import com.squareup.moshi.KotlinJsonAdapterFactory import com.squareup.moshi.Moshi import com.squareup.moshi.ToJson import okhttp3.OkHttpClient @@ -58,7 +59,7 @@ open class ApiClient(val baseUrl: String) { return null } val bodyContent = body.string() - if (bodyContent.length == 0) { + if (bodyContent.isEmpty()) { return null } return when(mediaType) { @@ -69,6 +70,7 @@ open class ApiClient(val baseUrl: String) { fun fromJson(s: String) = UUID.fromString(s) }) .add(ByteArrayAdapter()) + .add(KotlinJsonAdapterFactory()) .build().adapter(T::class.java).fromJson(bodyContent) else -> TODO("responseBody currently only supports JSON body.") } diff --git a/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt index c075b4fbb76..c2791fdb3e0 100644 --- a/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt +++ b/samples/client/petstore/kotlin/src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt @@ -1,6 +1,7 @@ package org.openapitools.client.infrastructure import com.squareup.moshi.FromJson +import com.squareup.moshi.KotlinJsonAdapterFactory import com.squareup.moshi.Moshi import com.squareup.moshi.ToJson import okhttp3.OkHttpClient @@ -58,7 +59,7 @@ open class ApiClient(val baseUrl: String) { return null } val bodyContent = body.string() - if (bodyContent.length == 0) { + if (bodyContent.isEmpty()) { return null } return when(mediaType) { @@ -69,6 +70,7 @@ open class ApiClient(val baseUrl: String) { fun fromJson(s: String) = UUID.fromString(s) }) .add(ByteArrayAdapter()) + .add(KotlinJsonAdapterFactory()) .build().adapter(T::class.java).fromJson(bodyContent) else -> TODO("responseBody currently only supports JSON body.") }