Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[kotlin][client] Use OffsetDateTime to represente date-time received by the server #4835

Merged
merged 10 commits into from
Dec 20, 2019

Conversation

4brunu
Copy link
Contributor

@4brunu 4brunu commented Dec 18, 2019

By default, the Kotlin client uses LocalDateTime to represent the date-time received from the server.
This is because because LocalDateTime doesn't have a notion of timezone.

It would be better to represent the date time received by the server in a OffsetDateTime which contains the timezone information.
The Java generator and the KotlinSpringServer also use the OffsetDateTime.

additionalProperties.put("threetenbp", "true");
additionalProperties.put("jsr310", "true");
typeMapping.put("date", "LocalDate");
typeMapping.put("DateTime", "OffsetDateTime");
importMapping.put("LocalDate", "org.threeten.bp.LocalDate");
importMapping.put("OffsetDateTime", "org.threeten.bp.OffsetDateTime");

typeMapping.put("date", "java.time.LocalDate");
typeMapping.put("date-time", "java.time.OffsetDateTime");
typeMapping.put("Date", "java.time.LocalDate");
typeMapping.put("DateTime", "java.time.OffsetDateTime");

This PR also fixes #4834

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

@jimschubert (2017/09) ❤️, @dr4ke616 (2018/08) @karismann (2019/03) @Zomzog (2019/04) @andrewemery (2019/10) @4brunu (2019/11)

@auto-labeler
Copy link

auto-labeler bot commented Dec 18, 2019

👍 Thanks for opening this issue!
🏷 I have applied any labels matching special text in your issue.

The team will review the labels and make any necessary changes.

@4brunu 4brunu closed this Dec 18, 2019
@4brunu 4brunu reopened this Dec 18, 2019
@4brunu 4brunu closed this Dec 18, 2019
@4brunu 4brunu reopened this Dec 18, 2019
@4brunu 4brunu closed this Dec 18, 2019
@4brunu 4brunu reopened this Dec 18, 2019
@wing328
Copy link
Member

wing328 commented Dec 20, 2019

@4brunu as discussed, let's consider this a bug fix and if users still want to use LocalDatetime, they can use the type mapping option to do so.

# Conflicts:
#	docs/generators/kotlin.md
#	modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinClientCodegen.java
#	modules/openapi-generator/src/main/resources/kotlin-client/jvm-common/infrastructure/OffsetDateTimeAdapter.kt.mustache
#	modules/openapi-generator/src/main/resources/kotlin-client/libraries/jvm-retrofit2/infrastructure/OffsetDateTimeAdapter.kt.mustache
#	modules/openapi-generator/src/main/resources/kotlin-client/libraries/retrofit2/infrastructure/Serializer.kt.mustache
@wing328 wing328 added this to the 4.2.3 milestone Dec 20, 2019
@wing328 wing328 merged commit 3eaafce into OpenAPITools:master Dec 20, 2019
@4brunu 4brunu deleted the feature/kotlin-date-time branch January 2, 2020 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG][kotlin][client] Wrong date-time object by default
2 participants