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

[dart][dio][built_value] Fix missing serializer factory builders for additionalProperties #11011

Merged
merged 1 commit into from
Dec 4, 2021

Conversation

kuhnroyal
Copy link
Contributor

@kuhnroyal kuhnroyal commented Dec 1, 2021

…additionalProperties

Refactor the addition of custom serializer factories.
Should fix #6951
Should fix #10465

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package 
    ./bin/generate-samples.sh
    ./bin/utils/export_docs_generators.sh
    
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master (5.3.0), 6.0.x
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

CC @jaumard (2018/09) @josh-burton (2019/12) @amondnet (2019/12) @sbu-WBT (2020/12) @kuhnroyal (2020/12) @agilob (2020/12) @ahmednfwela (2021/08)

@ahmednfwela
Copy link
Contributor

does dart-dio-next also have this?

…additionalProperties

Refactor the addition of custom serializer factories.
@kuhnroyal
Copy link
Contributor Author

does dart-dio-next also have this?

It is only in dart-dio-next.

@ahmednfwela
Copy link
Contributor

oh I was wondering why I wasn't reproducing this and I forgot I fixed it in my version

https://github.com/Bdaya-Dev/openapi-generator/blob/bdaya_master/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioNextClientCodegen.java#L527

and apparently #10189 is still not solved ?

@kuhnroyal
Copy link
Contributor Author

@ahmednfwela We already have the handling for response and parameter types, I just improved it to handle nullability.
This PR mainly adds it for schemas using additionalProperties.

@kuhnroyal
Copy link
Contributor Author

@jaumard This probably also fixes #10465, can you check that please.

@ahmednfwela
Copy link
Contributor

ahmednfwela commented Dec 1, 2021

but why is additionalProperties relevant here ? shouldn't type and items.type be enough ?
is there a case where additionalProperties can contain additional type info ?

Edit: this gets assigned automatically by default codegen https://github.com/Bdaya-Dev/openapi-generator/blob/master/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java#L3813

@kuhnroyal
Copy link
Contributor Author

See #6951 (comment)
This results in a BuildList<BuildMap<String, JsonObject?>> and there is no builder factory for the map generated atm., only for the list. additionalProperties can lead to nested containers and that is where built_value fails to generate the serializer builders.

This can also be a BuildList<BuildMap<String, int?>> for example.

@ahmednfwela
Copy link
Contributor

yes, but why check for additionalProperties instead of items ?

@kuhnroyal
Copy link
Contributor Author

Well for normal properties this is automatically generated.

@ahmednfwela
Copy link
Contributor

ahmednfwela commented Dec 1, 2021

I see now what you mean, but this is not recursive, so it won't solve BuiltList<BuiltList<BuiltMap<String, JsonObject?>>> for example, right ?

@kuhnroyal
Copy link
Contributor Author

Correct

@wing328 wing328 merged commit ecddd4c into OpenAPITools:master Dec 4, 2021
@kuhnroyal kuhnroyal deleted the feature/builder-factories branch December 6, 2021 14:41
@wing328 wing328 added this to the 5.3.1 milestone Dec 18, 2021
@wing328 wing328 changed the title [dart][dio][built_value] Fix missing serializer factory builders for … [dart][dio][built_value] Fix missing serializer factory builders for additionalProperties Dec 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants