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

[go-server] Feat: add required assertions to models #10068

Merged
merged 17 commits into from
Aug 7, 2021

Conversation

lwj5
Copy link
Contributor

@lwj5 lwj5 commented Jul 31, 2021

This PR adds required assertions for models.

  • Checks a model if required fields are non-zero (tested)
  • Checks a model's parent (recursive) if required fields are non-zero (tested)
  • Checks a model's children (recursive) if required fields are non-zero (tested)
  • Checks the model in an array (recursive e.g. slice in slice in slice) if required fields are non-zero (tested)
  • Works with nullable and non-nullable types (tested)

This PR does not do assertion checks for:

  • Map values (if they are a model)

Feel free to give suggestions, feedback!

Fixes:
A pointer of pointer?

	{{paramName}} := &{{dataType}}{}
	if err := json.NewDecoder(r.Body).Decode(&{{paramName}}); err != nil {

I removed the pointer from the first line.

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.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.

@lwj5
Copy link
Contributor Author

lwj5 commented Jul 31, 2021

Hi @antihax @grokify @kemokemo @jirikuncar @ph4r5h4d, please help to take a look at this PR

@lwj5 lwj5 changed the title [go-server] Add required assertions to models [go-server] Feat: add required assertions to models Jul 31, 2021
@lwj5
Copy link
Contributor Author

lwj5 commented Jul 31, 2021

Tests failure unrelated
Plugin org.openapitools:openapi-generator-maven-plugin:5.2.0-SNAPSHOT or one of its dependencies could not be resolved

@lwj5
Copy link
Contributor Author

lwj5 commented Aug 3, 2021

I think I might be able to add assertions for Nested arrays (array-in-array).

Edit: Done.

@lwj5 lwj5 changed the title [go-server] Feat: add required assertions to models [WIP][go-server] Feat: add required assertions to models Aug 3, 2021
@lwj5 lwj5 changed the title [WIP][go-server] Feat: add required assertions to models [go-server] Feat: add required assertions to models Aug 3, 2021
Copy link
Member

@wing328 wing328 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally and didn't spot any issue.

@wing328 wing328 merged commit 11d29eb into OpenAPITools:master Aug 7, 2021
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)
  ...
@lwj5 lwj5 deleted the required branch March 31, 2023 06:09
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

2 participants