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

Feat adds has discriminator with non empty mapping #9667

Conversation

spacether
Copy link
Contributor

@spacether spacether commented Jun 3, 2021

Adds hasDiscriminatorWithNonEmptyMapping
This template variable can be used to tell if there is or isn't a discriminator that needs to be defined.
This variable is needed in addition to the discriminator one because in by python-experimental branch, the discriminator has an indent applied to it. That indentation makes it impossible to generate code to check discriminator presence at the right indentation level (at the model level).
We need a schema level boolean variable that says the discriminator exists or not and this is it.

This variable can be used to determine if a custom schema or model needs to be written for an object schema.
A custom object schema model will need to be made if any of these conditions are met

  • hasVars
  • hasValidation
  • isNullable
  • hasRequiredVars
  • additionalPropertiesIsAnyType is False
  • hasDiscriminatorWithNonEmptyMapping

This will be used to generate DictSchemas only when needed in #8325

discriminators are only supported in request bodies and response payloads per OpenApi
But this interface is needed on all Java classes that implement Schema to allow robust generation by templates.
So it's needed in:

  • CodegenModel
  • CodegenProperty
  • CodegenParameter
  • CodegenResponse

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.1.x, 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.

@spacether spacether marked this pull request as draft June 3, 2021 19:04
@spacether spacether force-pushed the feat_adds_hasDiscriminatorWithNonEmptyMapping branch from e06b456 to 2910b00 Compare August 4, 2021 17:14
@spacether spacether added this to the 5.2.1 milestone Aug 6, 2021
@spacether spacether marked this pull request as ready for review August 7, 2021 14:49
@spacether
Copy link
Contributor Author

The error is unrelated to this PR

@spacether spacether merged commit cb71ae9 into OpenAPITools:master Aug 7, 2021
@spacether spacether deleted the feat_adds_hasDiscriminatorWithNonEmptyMapping branch August 7, 2021 14:52
ekilmer added a commit to ekilmer/openapi-generator that referenced this pull request Aug 16, 2021
* master: (849 commits)
  Don't use encodeCollectionQueryParameter on maps (OpenAPITools#10116)
  Fixed the utc time issue for httpSigning auth. (OpenAPITools#10139)
  [dart][dio] Update built_value to =>8.1.0 (OpenAPITools#10122)
  Add Inquisico to list of generator users (OpenAPITools#10142)
  add my companies to README (OpenAPITools#10146)
  [C][Client] Allocate memory for the element of array when the type is number (OpenAPITools#10124)
  update samples
  Fixed typo in csharp-netcore httpclient generated code (OpenAPITools#10119)
  Typescript-angular: Added missing semi colon to interface export in `apis.ts` template file. (OpenAPITools#10121)
  Fix issue 10020: [BUG] [typescript-angular] Add "header" to reserved words (OpenAPITools#10091)
  Add missing samples for OpenAPITools#9857
  [typescript] FIX: Generate documentation and examples OpenAPITools#9413 (OpenAPITools#9857)
  Feat adds has discriminator with non empty mapping (OpenAPITools#9667)
  Add switches (authentication collections) to support files (OpenAPITools#9884)
  [dart-dio-next] improve encodeCollectionQueryParameter to handle cases where collectionFormat is null (OpenAPITools#10105)
  [go-server] Feat: add required assertions to models (OpenAPITools#10068)
  [dart2] Include request body on DELETE call (OpenAPITools#10100)
  Make php's array a primitive (OpenAPITools#10093)
  Fix typo (preffer -> prefer) (OpenAPITools#10098)
  Fix typo on rust client (OpenAPITools#10096)
  ...
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.

None yet

1 participant