Merge remote-tracking branch 'origin/4.3.x' into 5.0.x

This commit is contained in:
William Cheng 2019-12-20 23:26:19 +08:00
commit bad78a30c8
92 changed files with 446 additions and 96 deletions

View File

@ -136,10 +136,10 @@ script:
- mvn --quiet --batch-mode --show-version clean install
- mvn --quiet --batch-mode --show-version verify -Psamples
# test maven plugin
- mvn clean compile -f modules/openapi-generator-maven-plugin/examples/java-client.xml
- mvn clean compile -f modules/openapi-generator-maven-plugin/examples/multi-module/pom.xml
- mvn clean compile -f modules/openapi-generator-maven-plugin/examples/kotlin.xml
- mvn clean compile -f modules/openapi-generator-maven-plugin/examples/spring.xml
- mvn --quiet clean compile -f modules/openapi-generator-maven-plugin/examples/java-client.xml
- mvn --quiet clean compile -f modules/openapi-generator-maven-plugin/examples/multi-module/pom.xml
- mvn --quiet clean compile -f modules/openapi-generator-maven-plugin/examples/kotlin.xml
- mvn --quiet clean compile -f modules/openapi-generator-maven-plugin/examples/spring.xml
# test gradle plugin
- (cd modules/openapi-generator-gradle-plugin/samples/local-spec && ./gradlew buildGoSdk)
- (cd modules/openapi-generator-gradle-plugin/samples/local-spec && ./gradlew openApiGenerate)

View File

@ -5,6 +5,6 @@ If Not Exist %executable% (
)
REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties
set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g kotlin --artifact-id "kotlin-petstore-string" --additional-properties dateLibrary=string,serializableModel=true -o samples\client\petstore\kotlin-string
set ags=generate -i modules\openapi-generator\src\test\resources\2_0\petstore.yaml -g kotlin --artifact-id "kotlin-petstore-string" --additional-properties dateLibrary=string,serializableModel=true,sortParamsByRequiredFlag=false,sortModelPropertiesByRequiredFlag=false -o samples\client\petstore\kotlin-string
java %JAVA_OPTS% -jar %executable% %ags%

View File

@ -18,7 +18,7 @@ sidebar_label: kotlin
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |null|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |null|
|modelMutable|Create mutable models| |false|
|dateLibrary|Option. Date library to use|<dl><dt>**string**</dt><dd>String</dd><dt>**java8**</dt><dd>Java 8 native JSR310 (jvm only)</dd><dt>**threetenbp**</dt><dd>Threetenbp (jvm only)</dd><dl>|java8|
|dateLibrary|Option. Date library to use|<dl><dt>**threetenbp-localdatetime**</dt><dd>Threetenbp - Backport of JSR310 (jvm only, for legacy app only)</dd><dt>**string**</dt><dd>String</dd><dt>**java8-localdatetime**</dt><dd>Java 8 native JSR310 (jvm only, for legacy app only)</dd><dt>**java8**</dt><dd>Java 8 native JSR310 (jvm only, preferred for jdk 1.8+)</dd><dt>**threetenbp**</dt><dd>Threetenbp - Backport of JSR310 (jvm only, preferred for jdk &lt; 1.8)</dd><dl>|java8|
|collectionType|Option. Collection type to use|<dl><dt>**array**</dt><dd>kotlin.Array</dd><dt>**list**</dt><dd>kotlin.collections.List</dd><dl>|array|
|library|Library template (sub-template) to use|<dl><dt>**jvm-okhttp4**</dt><dd>[DEFAULT] Platform: Java Virtual Machine. HTTP client: OkHttp 4.2.0 (Android 5.0+ and Java 8+). JSON processing: Moshi 1.8.0.</dd><dt>**jvm-okhttp3**</dt><dd>Platform: Java Virtual Machine. HTTP client: OkHttp 3.12.4 (Android 2.3+ and Java 7+). JSON processing: Moshi 1.8.0.</dd><dt>**jvm-retrofit2**</dt><dd>Platform: Java Virtual Machine. HTTP client: Retrofit 2.6.2.</dd><dt>**multiplatform**</dt><dd>Platform: Kotlin multiplatform. HTTP client: Ktor 1.2.4. JSON processing: Kotlinx Serialization: 0.12.0.</dd><dl>|jvm-okhttp4|
|requestDateConverter|JVM-Option. Defines in how to handle date-time objects that are used for a request (as query or parameter)|<dl><dt>**toJson**</dt><dd>Date formater option using a json converter.</dd><dt>**toString**</dt><dd>[DEFAULT] Use the 'toString'-method of the date-time object to retrieve the related string representation.</dd><dl>|toString|

View File

@ -56,7 +56,9 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
public enum DateLibrary {
STRING("string"),
THREETENBP("threetenbp"),
JAVA8("java8");
THREETENBP_LOCALDATETIME("threetenbp-localdatetime"),
JAVA8("java8"),
JAVA8_LOCALDATETIME("java8-localdatetime");
public final String value;
@ -111,9 +113,11 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
CliOption dateLibrary = new CliOption(DATE_LIBRARY, "Option. Date library to use");
Map<String, String> dateOptions = new HashMap<>();
dateOptions.put(DateLibrary.THREETENBP.value, "Threetenbp (jvm only)");
dateOptions.put(DateLibrary.THREETENBP.value, "Threetenbp - Backport of JSR310 (jvm only, preferred for jdk < 1.8)");
dateOptions.put(DateLibrary.THREETENBP_LOCALDATETIME.value, "Threetenbp - Backport of JSR310 (jvm only, for legacy app only)");
dateOptions.put(DateLibrary.STRING.value, "String");
dateOptions.put(DateLibrary.JAVA8.value, "Java 8 native JSR310 (jvm only)");
dateOptions.put(DateLibrary.JAVA8.value, "Java 8 native JSR310 (jvm only, preferred for jdk 1.8+)");
dateOptions.put(DateLibrary.JAVA8_LOCALDATETIME.value, "Java 8 native JSR310 (jvm only, for legacy app only)");
dateLibrary.setEnum(dateOptions);
dateLibrary.setDefault(this.dateLibrary);
cliOptions.add(dateLibrary);
@ -222,19 +226,12 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
}
private void processDateLibrary() {
DateLibrary dateLibraryEnum = DateLibrary.valueOf(dateLibrary.toUpperCase(Locale.ROOT));
switch (dateLibraryEnum) {
case THREETENBP:
processThreeTeBpDate();
break;
case STRING:
processStringDate();
break;
case JAVA8:
processJava8Date();
break;
default:
break;
if (DateLibrary.THREETENBP.value.equals(dateLibrary) || DateLibrary.THREETENBP_LOCALDATETIME.value.equals(dateLibrary)) {
processThreeTeBpDate(dateLibrary);
} else if (DateLibrary.STRING.value.equals(dateLibrary)) {
processStringDate();
} else if (DateLibrary.JAVA8.value.equals(dateLibrary) || DateLibrary.JAVA8_LOCALDATETIME.value.equals(dateLibrary)) {
processJava8Date(dateLibrary);
}
}
@ -246,14 +243,23 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
}
}
private void processThreeTeBpDate() {
private void processThreeTeBpDate(String dateLibrary) {
additionalProperties.put(DateLibrary.THREETENBP.value, true);
typeMapping.put("date", "LocalDate");
typeMapping.put("DateTime", "LocalDateTime");
importMapping.put("LocalDate", "org.threeten.bp.LocalDate");
importMapping.put("LocalDateTime", "org.threeten.bp.LocalDateTime");
defaultIncludes.add("org.threeten.bp.LocalDate");
defaultIncludes.add("org.threeten.bp.LocalDateTime");
if (dateLibrary.equals(DateLibrary.THREETENBP.value)) {
typeMapping.put("date-time", "org.threeten.bp.OffsetDateTime");
typeMapping.put("DateTime", "OffsetDateTime");
importMapping.put("OffsetDateTime", "org.threeten.bp.OffsetDateTime");
defaultIncludes.add("org.threeten.bp.OffsetDateTime");
} else if (dateLibrary.equals(DateLibrary.THREETENBP_LOCALDATETIME.value)) {
typeMapping.put("date-time", "org.threeten.bp.LocalDateTime");
typeMapping.put("DateTime", "LocalDateTime");
importMapping.put("LocalDateTime", "org.threeten.bp.LocalDateTime");
defaultIncludes.add("org.threeten.bp.LocalDateTime");
}
}
private void processStringDate() {
@ -263,8 +269,18 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
typeMapping.put("DateTime", "kotlin.String");
}
private void processJava8Date() {
private void processJava8Date(String dateLibrary) {
additionalProperties.put(DateLibrary.JAVA8.value, true);
if (dateLibrary.equals(DateLibrary.JAVA8.value)) {
typeMapping.put("date-time", "java.time.OffsetDateTime");
typeMapping.put("DateTime", "OffsetDateTime");
importMapping.put("OffsetDateTime", "java.time.OffsetDateTime");
} else if (dateLibrary.equals(DateLibrary.JAVA8_LOCALDATETIME.value)) {
typeMapping.put("date-time", "java.time.LocalDateTime");
typeMapping.put("DateTime", "LocalDateTime");
importMapping.put("LocalDateTime", "java.time.LocalDateTime");
}
}
private void processJVMRetrofit2Library(String infrastructureFolder) {
@ -280,7 +296,8 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/ByteArrayAdapter.kt.mustache", infrastructureFolder, "ByteArrayAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/LocalDateAdapter.kt.mustache", infrastructureFolder, "LocalDateAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/LocalDateTimeAdapter.kt.mustache", infrastructureFolder, "LocalDateTimeAdapter.kt"));
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/OffsetDateTimeAdapter.kt.mustache", infrastructureFolder, "OffsetDateTimeAdapter.kt"));
switch (getSerializationLibrary()) {
case moshi:
supportingFiles.add(new SupportingFile("jvm-common/infrastructure/UUIDAdapter.kt.mustache", infrastructureFolder, "UUIDAdapter.kt"));

View File

@ -138,7 +138,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
jersey_version = "1.19.4"
jodatime_version = "2.9.9"
junit_version = "4.12"

View File

@ -122,7 +122,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
{{#threetenbp}}
jackson_threetenbp_version = "2.9.10"
{{/threetenbp}}

View File

@ -315,7 +315,7 @@
<feign-version>{{#useFeign10}}10.2.3{{/useFeign10}}{{^useFeign10}}9.7.0{{/useFeign10}}</feign-version>
<feign-form-version>2.1.0</feign-form-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
{{#threetenbp}}
<jackson-threetenbp-version>2.9.10</jackson-threetenbp-version>

View File

@ -122,7 +122,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
google_api_client_version = "1.23.0"
jersey_common_version = "2.25.1"
jodatime_version = "2.9.9"

View File

@ -308,7 +308,7 @@
<jersey-common-version>2.25.1</jersey-common-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
{{#joda}}
<jodatime-version>2.9.9</jodatime-version>
{{/joda}}

View File

@ -121,7 +121,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
{{#supportJava6}}
jersey_version = "2.6"
commons_io_version=2.5

View File

@ -362,7 +362,7 @@
{{/supportJava6}}
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
{{#threetenbp}}
<threetenbp-version>2.9.10</threetenbp-version>
{{/threetenbp}}

View File

@ -215,7 +215,7 @@
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<jackson-version>2.9.9</jackson-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<junit-version>4.12</junit-version>
</properties>
</project>

View File

@ -101,7 +101,7 @@ ext {
{{#jackson}}
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10"
jackson_databind_nullable_version = 0.2.0
jackson_databind_nullable_version = 0.2.1
{{/jackson}}
{{#gson}}
gson_version = "2.8.5"

View File

@ -325,7 +325,7 @@
{{#jackson}}
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
{{#threetenbp}}
<jackson-threetenbp-version>2.9.10</jackson-threetenbp-version>
{{/threetenbp}}

View File

@ -121,7 +121,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
threetenbp_version = "2.9.10"
resteasy_version = "3.1.3.Final"
{{^java8}}

View File

@ -296,7 +296,7 @@
<resteasy-version>3.1.3.Final</resteasy-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<threetenbp-version>2.9.10</threetenbp-version>
{{^java8}}
<jodatime-version>2.9.9</jodatime-version>

View File

@ -122,7 +122,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
spring_web_version = "4.3.9.RELEASE"
jodatime_version = "2.9.9"
junit_version = "4.12"

View File

@ -311,7 +311,7 @@
<spring-web-version>4.3.9.RELEASE</spring-web-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
{{#joda}}
<jodatime-version>2.9.9</jodatime-version>
{{/joda}}

View File

@ -133,7 +133,7 @@ ext {
{{#play26}}
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
play_version = "2.6.7"
{{/play26}}
{{/usePlayWS}}

View File

@ -388,7 +388,7 @@
<jackson-version>2.9.10</jackson-version>
<play-version>2.6.7</play-version>
{{/play26}}
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
{{/usePlayWS}}
<retrofit-version>2.5.0</retrofit-version>
{{#useRxJava}}

View File

@ -291,7 +291,7 @@
<swagger-annotations-version>1.5.22</swagger-annotations-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind>2.9.10.1</jackson-databind>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<junit-version>4.12</junit-version>
</properties>
</project>

View File

@ -145,7 +145,7 @@
<spring-web-version>5.0.8.RELEASE</spring-web-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<junit-version>4.12</junit-version>
<reactor-version>3.1.8.RELEASE</reactor-version>
<reactor-netty-version>0.7.8.RELEASE</reactor-netty-version>

View File

@ -0,0 +1,63 @@
package {{packageName}}.infrastructure
{{#moshi}}
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
{{/moshi}}
{{#gson}}
import com.google.gson.TypeAdapter
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonWriter
import com.google.gson.stream.JsonToken.NULL
import java.io.IOException
{{/gson}}
{{^threetenbp}}
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
{{/threetenbp}}
{{#threetenbp}}
import org.threeten.bp.OffsetDateTime
import org.threeten.bp.format.DateTimeFormatter
{{/threetenbp}}
{{#moshi}}
{{#nonPublicApi}}internal {{/nonPublicApi}}class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}
{{/moshi}}
{{#gson}}
{{#nonPublicApi}}internal {{/nonPublicApi}}class OffsetDateTimeAdapter(private val formatter: DateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME) : TypeAdapter<OffsetDateTime>() {
@Throws(IOException::class)
override fun write(out: JsonWriter?, value: OffsetDateTime?) {
if (value == null) {
out?.nullValue()
} else {
out?.value(formatter.format(value))
}
}
@Throws(IOException::class)
override fun read(out: JsonReader?): OffsetDateTime? {
out ?: return null
when (out.peek()) {
NULL -> {
out.nextNull()
return null
}
else -> {
return OffsetDateTime.parse(out.nextString(), formatter)
}
}
}
}
{{/gson}}

View File

@ -13,10 +13,12 @@ import com.google.gson.GsonBuilder
{{^threetenbp}}
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.OffsetDateTime
{{/threetenbp}}
{{#threetenbp}}
import org.threeten.bp.LocalDate
import org.threeten.bp.LocalDateTime
import org.threeten.bp.OffsetDateTime
{{/threetenbp}}
import java.util.UUID
{{/gson}}
@ -27,6 +29,7 @@ import java.util.Date
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())
@ -44,6 +47,7 @@ import java.util.Date
@JvmStatic
val gsonBuilder: GsonBuilder = GsonBuilder()
.registerTypeAdapter(Date::class.java, DateAdapter())
.registerTypeAdapter(OffsetDateTime::class.java, OffsetDateTimeAdapter())
.registerTypeAdapter(LocalDateTime::class.java, LocalDateTimeAdapter())
.registerTypeAdapter(LocalDate::class.java, LocalDateAdapter())
.registerTypeAdapter(ByteArray::class.java, ByteArrayAdapter())

View File

@ -66,6 +66,7 @@ public class KotlinClientCodegenModelTest {
public void simpleModelTest() {
final Schema schema = getSimpleSchema();
final DefaultCodegen codegen = new KotlinClientCodegen();
codegen.processOpts();
OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", schema);
codegen.setOpenAPI(openAPI);
@ -100,10 +101,10 @@ public class KotlinClientCodegenModelTest {
final CodegenProperty property3 = cm.vars.get(2);
Assert.assertEquals(property3.baseName, "createdAt");
Assert.assertEquals(property3.dataType, "java.time.LocalDateTime");
Assert.assertEquals(property3.dataType, "java.time.OffsetDateTime");
Assert.assertEquals(property3.name, "createdAt");
Assert.assertEquals(property3.defaultValue, null);
Assert.assertEquals(property3.baseType, "java.time.LocalDateTime");
Assert.assertEquals(property3.baseType, "java.time.OffsetDateTime");
Assert.assertFalse(property3.hasMore);
Assert.assertFalse(property3.required);
Assert.assertFalse(property3.isContainer);
@ -120,6 +121,30 @@ public class KotlinClientCodegenModelTest {
codegen.setOpenAPI(openAPI);
final CodegenModel cm = codegen.fromModel("sample", schema);
final CodegenProperty property3 = cm.vars.get(2);
Assert.assertEquals(property3.baseName, "createdAt");
Assert.assertEquals(property3.dataType, "org.threeten.bp.OffsetDateTime");
Assert.assertEquals(property3.name, "createdAt");
Assert.assertEquals(property3.defaultValue, null);
Assert.assertEquals(property3.baseType, "org.threeten.bp.OffsetDateTime");
Assert.assertFalse(property3.hasMore);
Assert.assertFalse(property3.required);
Assert.assertFalse(property3.isContainer);
}
@Test(description = "convert a simple model: threetenbp-localdatetime")
public void selectDateLibraryAsThreetenbpLocalDateTime() {
final Schema schema = getSimpleSchema();
final KotlinClientCodegen codegen = new KotlinClientCodegen();
String value = KotlinClientCodegen.DateLibrary.THREETENBP_LOCALDATETIME.value;
Assert.assertEquals(value, "threetenbp-localdatetime");
codegen.setDateLibrary(KotlinClientCodegen.DateLibrary.THREETENBP_LOCALDATETIME.value);
codegen.processOpts();
OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", schema);
codegen.setOpenAPI(openAPI);
final CodegenModel cm = codegen.fromModel("sample", schema);
final CodegenProperty property3 = cm.vars.get(2);
Assert.assertEquals(property3.baseName, "createdAt");
Assert.assertEquals(property3.dataType, "org.threeten.bp.LocalDateTime");
@ -164,6 +189,30 @@ public class KotlinClientCodegenModelTest {
codegen.setOpenAPI(openAPI);
final CodegenModel cm = codegen.fromModel("sample", schema);
final CodegenProperty property3 = cm.vars.get(2);
Assert.assertEquals(property3.baseName, "createdAt");
Assert.assertEquals(property3.dataType, "java.time.OffsetDateTime");
Assert.assertEquals(property3.name, "createdAt");
Assert.assertEquals(property3.defaultValue, null);
Assert.assertEquals(property3.baseType, "java.time.OffsetDateTime");
Assert.assertFalse(property3.hasMore);
Assert.assertFalse(property3.required);
Assert.assertFalse(property3.isContainer);
}
@Test(description = "convert a simple model: date java8-localdatetime")
public void selectDateLibraryAsJava8LocalDateTime() {
final Schema schema = getSimpleSchema();
final KotlinClientCodegen codegen = new KotlinClientCodegen();
String value = KotlinClientCodegen.DateLibrary.JAVA8_LOCALDATETIME.value;
Assert.assertEquals(value, "java8-localdatetime");
codegen.setDateLibrary(KotlinClientCodegen.DateLibrary.JAVA8_LOCALDATETIME.value);
codegen.processOpts();
OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", schema);
codegen.setOpenAPI(openAPI);
final CodegenModel cm = codegen.fromModel("sample", schema);
final CodegenProperty property3 = cm.vars.get(2);
Assert.assertEquals(property3.baseName, "createdAt");
Assert.assertEquals(property3.dataType, "java.time.LocalDateTime");

View File

@ -98,7 +98,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
jackson_threetenbp_version = "2.9.10"
feign_version = "9.7.0"
feign_form_version = "2.1.0"

View File

@ -282,7 +282,7 @@
<feign-version>9.7.0</feign-version>
<feign-form-version>2.1.0</feign-form-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-threetenbp-version>2.9.10</jackson-threetenbp-version>
<junit-version>4.12</junit-version>

View File

@ -98,7 +98,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
jackson_threetenbp_version = "2.9.10"
feign_version = "10.2.3"
feign_form_version = "2.1.0"

View File

@ -282,7 +282,7 @@
<feign-version>10.2.3</feign-version>
<feign-form-version>2.1.0</feign-form-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-threetenbp-version>2.9.10</jackson-threetenbp-version>
<junit-version>4.12</junit-version>

View File

@ -98,7 +98,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
google_api_client_version = "1.23.0"
jersey_common_version = "2.25.1"
jodatime_version = "2.9.9"

View File

@ -260,7 +260,7 @@
<jersey-common-version>2.25.1</jersey-common-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<jackson-threetenbp-version>2.9.10</jackson-threetenbp-version>
<maven-plugin-version>1.0.0</maven-plugin-version>
<junit-version>4.12</junit-version>

View File

@ -114,7 +114,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
jersey_version = "1.19.4"
jodatime_version = "2.9.9"
junit_version = "4.12"

View File

@ -292,7 +292,7 @@
<commons_lang3_version>3.6</commons_lang3_version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<threetenbp-version>2.9.10</threetenbp-version>
<maven-plugin-version>1.0.0</maven-plugin-version>
<junit-version>4.12</junit-version>

View File

@ -97,7 +97,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
jersey_version = "2.27"
junit_version = "4.12"
}

View File

@ -279,7 +279,7 @@
<jersey-version>2.27</jersey-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<maven-plugin-version>1.0.0</maven-plugin-version>
<junit-version>4.12</junit-version>
</properties>

View File

@ -97,7 +97,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
jersey_version = "2.27"
junit_version = "4.12"
threetenbp_version = "2.9.10"

View File

@ -285,7 +285,7 @@
<jersey-version>2.27</jersey-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<threetenbp-version>2.9.10</threetenbp-version>
<maven-plugin-version>1.0.0</maven-plugin-version>
<junit-version>4.12</junit-version>

View File

@ -208,7 +208,7 @@
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<jackson-version>2.9.9</jackson-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<junit-version>4.12</junit-version>
</properties>
</project>

View File

@ -97,7 +97,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
threetenbp_version = "2.9.10"
resteasy_version = "3.1.3.Final"
jodatime_version = "2.9.9"

View File

@ -245,7 +245,7 @@
<resteasy-version>3.1.3.Final</resteasy-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<threetenbp-version>2.9.10</threetenbp-version>
<jodatime-version>2.9.9</jodatime-version>
<maven-plugin-version>1.0.0</maven-plugin-version>

View File

@ -98,7 +98,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
spring_web_version = "4.3.9.RELEASE"
jodatime_version = "2.9.9"
junit_version = "4.12"

View File

@ -269,7 +269,7 @@
<spring-web-version>4.3.9.RELEASE</spring-web-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<jackson-threetenbp-version>2.9.10</jackson-threetenbp-version>
<maven-plugin-version>1.0.0</maven-plugin-version>
<junit-version>4.12</junit-version>

View File

@ -98,7 +98,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
spring_web_version = "4.3.9.RELEASE"
jodatime_version = "2.9.9"
junit_version = "4.12"

View File

@ -261,7 +261,7 @@
<spring-web-version>4.3.9.RELEASE</spring-web-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<jackson-threetenbp-version>2.9.10</jackson-threetenbp-version>
<maven-plugin-version>1.0.0</maven-plugin-version>
<junit-version>4.12</junit-version>

View File

@ -282,7 +282,7 @@
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-version>2.6.6</jackson-version>
<play-version>2.4.11</play-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<retrofit-version>2.5.0</retrofit-version>
<oltu-version>1.0.1</oltu-version>
<junit-version>4.12</junit-version>

View File

@ -287,7 +287,7 @@
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-version>2.9.10</jackson-version>
<play-version>2.5.15</play-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<retrofit-version>2.5.0</retrofit-version>
<threetenbp-version>1.4.0</threetenbp-version>
<oltu-version>1.0.1</oltu-version>

View File

@ -99,7 +99,7 @@ ext {
retrofit_version = "2.3.0"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
play_version = "2.6.7"
swagger_annotations_version = "1.5.22"
junit_version = "4.12"

View File

@ -292,7 +292,7 @@
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-version>2.9.10</jackson-version>
<play-version>2.6.7</play-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<retrofit-version>2.5.0</retrofit-version>
<threetenbp-version>1.4.0</threetenbp-version>
<oltu-version>1.0.1</oltu-version>

View File

@ -268,7 +268,7 @@
<swagger-annotations-version>1.5.22</swagger-annotations-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind>2.9.10.1</jackson-databind>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<junit-version>4.12</junit-version>
</properties>
</project>

View File

@ -114,7 +114,7 @@ ext {
swagger_annotations_version = "1.5.22"
jackson_version = "2.9.10"
jackson_databind_version = "2.9.10.1"
jackson_databind_nullable_version = "0.2.0"
jackson_databind_nullable_version = "0.2.1"
jersey_version = "1.19.4"
jodatime_version = "2.9.9"
junit_version = "4.12"

View File

@ -124,7 +124,7 @@
<spring-web-version>5.0.8.RELEASE</spring-web-version>
<jackson-version>2.9.10</jackson-version>
<jackson-databind-version>2.9.10.1</jackson-databind-version>
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
<jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
<junit-version>4.12</junit-version>
<reactor-version>3.1.8.RELEASE</reactor-version>
<reactor-netty-version>0.7.8.RELEASE</reactor-netty-version>

View File

@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **kotlin.Long** | | [optional]
**petId** | **kotlin.Long** | | [optional]
**quantity** | **kotlin.Int** | | [optional]
**shipDate** | [**java.time.LocalDateTime**](java.time.LocalDateTime.md) | | [optional]
**shipDate** | [**java.time.OffsetDateTime**](java.time.OffsetDateTime.md) | | [optional]
**status** | [**inline**](#StatusEnum) | Order Status | [optional]
**complete** | **kotlin.Boolean** | | [optional]

View File

@ -0,0 +1,35 @@
package org.openapitools.client.infrastructure
import com.google.gson.TypeAdapter
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonWriter
import com.google.gson.stream.JsonToken.NULL
import java.io.IOException
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
class OffsetDateTimeAdapter(private val formatter: DateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME) : TypeAdapter<OffsetDateTime>() {
@Throws(IOException::class)
override fun write(out: JsonWriter?, value: OffsetDateTime?) {
if (value == null) {
out?.nullValue()
} else {
out?.value(formatter.format(value))
}
}
@Throws(IOException::class)
override fun read(out: JsonReader?): OffsetDateTime? {
out ?: return null
when (out.peek()) {
NULL -> {
out.nextNull()
return null
}
else -> {
return OffsetDateTime.parse(out.nextString(), formatter)
}
}
}
}

View File

@ -4,6 +4,7 @@ import com.google.gson.Gson
import com.google.gson.GsonBuilder
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.OffsetDateTime
import java.util.UUID
import java.util.Date
@ -11,6 +12,7 @@ object Serializer {
@JvmStatic
val gsonBuilder: GsonBuilder = GsonBuilder()
.registerTypeAdapter(Date::class.java, DateAdapter())
.registerTypeAdapter(OffsetDateTime::class.java, OffsetDateTimeAdapter())
.registerTypeAdapter(LocalDateTime::class.java, LocalDateTimeAdapter())
.registerTypeAdapter(LocalDate::class.java, LocalDateAdapter())
.registerTypeAdapter(ByteArray::class.java, ByteArrayAdapter())

View File

@ -31,7 +31,7 @@ data class Order (
@SerializedName("quantity")
val quantity: kotlin.Int? = null,
@SerializedName("shipDate")
val shipDate: java.time.LocalDateTime? = null,
val shipDate: java.time.OffsetDateTime? = null,
/* Order Status */
@SerializedName("status")
val status: Order.Status? = null,

View File

@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **kotlin.Long** | | [optional]
**petId** | **kotlin.Long** | | [optional]
**quantity** | **kotlin.Int** | | [optional]
**shipDate** | [**java.time.LocalDateTime**](java.time.LocalDateTime.md) | | [optional]
**shipDate** | [**java.time.OffsetDateTime**](java.time.OffsetDateTime.md) | | [optional]
**status** | [**inline**](#StatusEnum) | Order Status | [optional]
**complete** | **kotlin.Boolean** | | [optional]

View File

@ -170,7 +170,7 @@ Get all pets
//import org.openapitools.client.models.*
val apiInstance = PetApi()
val lastUpdated : java.time.LocalDateTime = 2013-10-20T19:20:30+01:00 // java.time.LocalDateTime | When this endpoint was hit last to help indentify if the client already has the latest copy.
val lastUpdated : java.time.OffsetDateTime = 2013-10-20T19:20:30+01:00 // java.time.OffsetDateTime | When this endpoint was hit last to help indentify if the client already has the latest copy.
try {
val result : kotlin.Array<Pet> = apiInstance.getAllPets(lastUpdated)
println(result)
@ -187,7 +187,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**lastUpdated** | **java.time.LocalDateTime**| When this endpoint was hit last to help indentify if the client already has the latest copy. | [optional]
**lastUpdated** | **java.time.OffsetDateTime**| When this endpoint was hit last to help indentify if the client already has the latest copy. | [optional]
### Return type

View File

@ -164,7 +164,7 @@ class PetApi(basePath: kotlin.String = "http://petstore.swagger.io/v2") : ApiCli
*/
@Suppress("UNCHECKED_CAST")
@Throws(UnsupportedOperationException::class, ClientException::class, ServerException::class)
fun getAllPets(lastUpdated: java.time.LocalDateTime?) : kotlin.Array<Pet> {
fun getAllPets(lastUpdated: java.time.OffsetDateTime?) : kotlin.Array<Pet> {
val localVariableBody: kotlin.Any? = null
val localVariableQuery: MultiValueMap = mutableMapOf<kotlin.String, List<kotlin.String>>()
.apply {

View File

@ -0,0 +1,19 @@
package org.openapitools.client.infrastructure
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}

View File

@ -9,6 +9,7 @@ object Serializer {
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())

View File

@ -31,7 +31,7 @@ data class Order (
@Json(name = "quantity")
val quantity: kotlin.Int? = null,
@Json(name = "shipDate")
val shipDate: java.time.LocalDateTime? = null,
val shipDate: java.time.OffsetDateTime? = null,
/* Order Status */
@Json(name = "status")
val status: Order.Status? = null,

View File

@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **kotlin.Long** | | [optional]
**petId** | **kotlin.Long** | | [optional]
**quantity** | **kotlin.Int** | | [optional]
**shipDate** | [**java.time.LocalDateTime**](java.time.LocalDateTime.md) | | [optional]
**shipDate** | [**java.time.OffsetDateTime**](java.time.OffsetDateTime.md) | | [optional]
**status** | [**inline**](#StatusEnum) | Order Status | [optional]
**complete** | **kotlin.Boolean** | | [optional]

View File

@ -0,0 +1,19 @@
package org.openapitools.client.infrastructure
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}

View File

@ -8,6 +8,7 @@ object Serializer {
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())

View File

@ -32,7 +32,7 @@ data class Order (
@Json(name = "quantity")
val quantity: kotlin.Int? = null,
@Json(name = "shipDate")
val shipDate: java.time.LocalDateTime? = null,
val shipDate: java.time.OffsetDateTime? = null,
/* Order Status */
@Json(name = "status")
val status: Order.Status? = null,

View File

@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **kotlin.Long** | | [optional]
**petId** | **kotlin.Long** | | [optional]
**quantity** | **kotlin.Int** | | [optional]
**shipDate** | [**java.time.LocalDateTime**](java.time.LocalDateTime.md) | | [optional]
**shipDate** | [**java.time.OffsetDateTime**](java.time.OffsetDateTime.md) | | [optional]
**status** | [**inline**](#StatusEnum) | Order Status | [optional]
**complete** | **kotlin.Boolean** | | [optional]

View File

@ -0,0 +1,19 @@
package org.openapitools.client.infrastructure
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
internal class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}

View File

@ -9,6 +9,7 @@ internal object Serializer {
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())

View File

@ -31,7 +31,7 @@ internal data class Order (
@Json(name = "quantity")
val quantity: kotlin.Int? = null,
@Json(name = "shipDate")
val shipDate: java.time.LocalDateTime? = null,
val shipDate: java.time.OffsetDateTime? = null,
/* Order Status */
@Json(name = "status")
val status: Order.Status? = null,

View File

@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **kotlin.Long** | | [optional]
**petId** | **kotlin.Long** | | [optional]
**quantity** | **kotlin.Int** | | [optional]
**shipDate** | [**java.time.LocalDateTime**](java.time.LocalDateTime.md) | | [optional]
**shipDate** | [**java.time.OffsetDateTime**](java.time.OffsetDateTime.md) | | [optional]
**status** | [**inline**](#StatusEnum) | Order Status | [optional]
**complete** | **kotlin.Boolean** | | [optional]

View File

@ -0,0 +1,19 @@
package org.openapitools.client.infrastructure
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}

View File

@ -9,6 +9,7 @@ object Serializer {
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())

View File

@ -32,7 +32,7 @@ data class Order (
@Json(name = "quantity")
val quantity: kotlin.Int? = null,
@Json(name = "shipDate")
val shipDate: java.time.LocalDateTime? = null,
val shipDate: java.time.OffsetDateTime? = null,
/* Order Status */
@Json(name = "status")
val status: Order.Status? = null,

View File

@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **kotlin.Long** | | [optional]
**petId** | **kotlin.Long** | | [optional]
**quantity** | **kotlin.Int** | | [optional]
**shipDate** | [**java.time.LocalDateTime**](java.time.LocalDateTime.md) | | [optional]
**shipDate** | [**java.time.OffsetDateTime**](java.time.OffsetDateTime.md) | | [optional]
**status** | [**inline**](#StatusEnum) | Order Status | [optional]
**complete** | **kotlin.Boolean** | | [optional]

View File

@ -0,0 +1,19 @@
package org.openapitools.client.infrastructure
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}

View File

@ -9,6 +9,7 @@ object Serializer {
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())

View File

@ -31,7 +31,7 @@ data class Order (
@Json(name = "quantity")
val quantity: kotlin.Int? = null,
@Json(name = "shipDate")
val shipDate: java.time.LocalDateTime? = null,
val shipDate: java.time.OffsetDateTime? = null,
/* Order Status */
@Json(name = "status")
val status: Order.Status? = null,

View File

@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **kotlin.Long** | | [optional]
**petId** | **kotlin.Long** | | [optional]
**quantity** | **kotlin.Int** | | [optional]
**shipDate** | [**java.time.LocalDateTime**](java.time.LocalDateTime.md) | | [optional]
**shipDate** | [**java.time.OffsetDateTime**](java.time.OffsetDateTime.md) | | [optional]
**status** | [**inline**](#StatusEnum) | Order Status | [optional]
**complete** | **kotlin.Boolean** | | [optional]

View File

@ -0,0 +1,19 @@
package org.openapitools.client.infrastructure
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}

View File

@ -9,6 +9,7 @@ object Serializer {
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())

View File

@ -31,7 +31,7 @@ data class Order (
@Json(name = "quantity")
val quantity: kotlin.Int? = null,
@Json(name = "shipDate")
val shipDate: java.time.LocalDateTime? = null,
val shipDate: java.time.OffsetDateTime? = null,
/* Order Status */
@Json(name = "status")
val status: Order.Status? = null,

View File

@ -0,0 +1,19 @@
package org.openapitools.client.infrastructure
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}

View File

@ -9,6 +9,7 @@ object Serializer {
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())

View File

@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **kotlin.Long** | | [optional]
**petId** | **kotlin.Long** | | [optional]
**quantity** | **kotlin.Int** | | [optional]
**shipDate** | [**org.threeten.bp.LocalDateTime**](org.threeten.bp.LocalDateTime.md) | | [optional]
**shipDate** | [**org.threeten.bp.OffsetDateTime**](org.threeten.bp.OffsetDateTime.md) | | [optional]
**status** | [**inline**](#StatusEnum) | Order Status | [optional]
**complete** | **kotlin.Boolean** | | [optional]

View File

@ -0,0 +1,19 @@
package org.openapitools.client.infrastructure
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import org.threeten.bp.OffsetDateTime
import org.threeten.bp.format.DateTimeFormatter
class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}

View File

@ -9,6 +9,7 @@ object Serializer {
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())

View File

@ -31,7 +31,7 @@ data class Order (
@Json(name = "quantity")
val quantity: kotlin.Int? = null,
@Json(name = "shipDate")
val shipDate: org.threeten.bp.LocalDateTime? = null,
val shipDate: org.threeten.bp.OffsetDateTime? = null,
/* Order Status */
@Json(name = "status")
val status: Order.Status? = null,

View File

@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **kotlin.Long** | | [optional]
**petId** | **kotlin.Long** | | [optional]
**quantity** | **kotlin.Int** | | [optional]
**shipDate** | [**java.time.LocalDateTime**](java.time.LocalDateTime.md) | | [optional]
**shipDate** | [**java.time.OffsetDateTime**](java.time.OffsetDateTime.md) | | [optional]
**status** | [**inline**](#StatusEnum) | Order Status | [optional]
**complete** | **kotlin.Boolean** | | [optional]

View File

@ -0,0 +1,19 @@
package org.openapitools.client.infrastructure
import com.squareup.moshi.FromJson
import com.squareup.moshi.ToJson
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter
class OffsetDateTimeAdapter {
@ToJson
fun toJson(value: OffsetDateTime): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(value)
}
@FromJson
fun fromJson(value: String): OffsetDateTime {
return OffsetDateTime.parse(value, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
}
}

View File

@ -9,6 +9,7 @@ object Serializer {
@JvmStatic
val moshiBuilder: Moshi.Builder = Moshi.Builder()
.add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
.add(OffsetDateTimeAdapter())
.add(LocalDateTimeAdapter())
.add(LocalDateAdapter())
.add(UUIDAdapter())

View File

@ -32,7 +32,7 @@ data class Order (
@Json(name = "quantity")
val quantity: kotlin.Int? = null,
@Json(name = "shipDate")
val shipDate: java.time.LocalDateTime? = null,
val shipDate: java.time.OffsetDateTime? = null,
/* Order Status */
@Json(name = "status")
val status: Order.Status? = null,

View File

@ -6,7 +6,7 @@ import org.openapitools.client.apis.PetApi
import org.openapitools.client.apis.StoreApi
import org.openapitools.client.models.Order
import org.openapitools.client.models.Pet
import java.time.LocalDateTime.now
import java.time.OffsetDateTime.now
class StoreApiTest : ShouldSpec() {
init {