[Kotlin][Client] Add option to make all api method return a nullable model - #4422

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable
Nov 13, 2019
Merged

[Kotlin][Client] Add option to make all api method return a nullable model#4422
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable

Conversation

@AlexanderEggers

@AlexanderEggersAlexanderEggers commented Nov 8, 2019

Copy link
Copy Markdown
Contributor

Closes#4418

  • added new additional-parameter nullableReturnType
    • converts the api related methods from non-null to nullable
    • change the class member data of ApiInfrastructureResponse.Success to a nullable type
  • added new kotlin-client sample to show the nullable changes
  • added new shell and bash script files

It probably makes sense to merge #4419 first. I will take care of any merge conflicts.

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.

@auto-labelerauto-labelerBot added the WIP Work in Progress label Nov 8, 2019
@auto-labeler

Copy link
Copy Markdown

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

@AlexanderEggersAlexanderEggers changed the title [Kotlin-Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client][WIP] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggers marked this pull request as ready for review November 8, 2019 14:18
@AlexanderEggersAlexanderEggers changed the title [Kotlin][Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 2 times, most recently from 617b5a4 to 7920c09CompareNovember 8, 2019 14:32
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

PR is ready for review.

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

@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 4 times, most recently from 89bbec8 to a010d25CompareNovember 11, 2019 08:46
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@wing328 Since I dragged in your PR, the circleci step is failing. Do you have an idea for how to fix that? Besides that, the PR is ready for review. I fixed the merge conflicts that were caused by your PR.

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like a great addition! Just had a few questions.

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Comment threadmodules/openapi-generator/src/main/resources/kotlin-client/api.mustache Outdated
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

Thanks for your feedback. 👍

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Do you mean adding the option to this readme >> https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/kotlin.md

@jimschubert

Copy link
Copy Markdown
Member

@Mordag regarding the default in the generator, I was referring to something like this:

if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {

However, based on the other discussions, it looks like there won't be other changes so I can just pick up the additionalProperties thing later.

My only remaining question on the PR is related to the mediaType guard.

Let me know if you'd like help looking into the CI error. You mentioned it failing after pulling in changes, but I don't see an additional commit (so I didn't know where to begin). It seems from looking at the logs that it failed on Kotlin generation. It could be as simple as missing the executable flag on bin/kotlin-client-nullable.sh

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert I removed the mediaType for now and updated the samples. If all tests are green, the PR should be ready to 🚢.

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert The circleci is going to fail with the same error again. Can you help me try to figure out the root problem?

Mordagand others added 3 commits November 12, 2019 23:31
I've added new .bat files for the kotlin-client to alllow windows-devs to re-generate required samples via windows-shell (for CI).
In this commit I have also made some changes to the kotlin-client-all.bat to make this file a bit more robust regarding different folder structures.
@jimschubert

Copy link
Copy Markdown
Member

@Mordag I've opened AlexanderEggers#1 against your branch. This should resolve the CircleCI issue.

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

Looks like the Shippable failure is just Shippable being flaky on container initialization, it was green on the previous commit, prior to the force push (which removes links to those checks)… see Shippable runs/12015

@AlexanderEggers

AlexanderEggers commented Nov 13, 2019

Copy link
Copy Markdown
ContributorAuthor

@jimschubert Thanks for helping me resolving the issue with the circleci. 👍

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

How do I remove the WIP tag? It doesn't seem that I have the needed permissions for that. The force push is only related to a rebase to master.

@jimschubertjimschubert added Client: Kotlin and removed WIP Work in Progress labels Nov 13, 2019
@jimschubert

Copy link
Copy Markdown
Member

No problem! I've gone ahead and removed the WIP. I see now that it was added by auto-labeler and you have since changed the title (hadn't noticed that earlier).

@jimschubertjimschubert added this to the 4.2.1 milestone Nov 13, 2019
@jimschubert
jimschubert merged commit 34c715e into OpenAPITools:masterNov 13, 2019
@AlexanderEggers
AlexanderEggers deleted the kotlin-nullable branch November 13, 2019 03:50
@wing328

Copy link
Copy Markdown
Member

@Mordag thanks for the PR, which has been included in the v4.2.1 release: https://twitter.com/oas_generator/status/1195339336922759168

Sign up for freeto 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.

[REQ][Kotlin-Client] Add nullable return type for api classes

4 participants

@AlexanderEggers@jimschubert@wing328@Mordag
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[Kotlin][Client] Add option to make all api method return a nullable model - #4422

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable
Nov 13, 2019
Merged

[Kotlin][Client] Add option to make all api method return a nullable model#4422
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable

Conversation

@AlexanderEggers

@AlexanderEggersAlexanderEggers commented Nov 8, 2019

Copy link
Copy Markdown
Contributor

Closes#4418

  • added new additional-parameter nullableReturnType
    • converts the api related methods from non-null to nullable
    • change the class member data of ApiInfrastructureResponse.Success to a nullable type
  • added new kotlin-client sample to show the nullable changes
  • added new shell and bash script files

It probably makes sense to merge #4419 first. I will take care of any merge conflicts.

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.

@auto-labelerauto-labelerBot added the WIP Work in Progress label Nov 8, 2019
@auto-labeler

Copy link
Copy Markdown

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

@AlexanderEggersAlexanderEggers changed the title [Kotlin-Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client][WIP] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggers marked this pull request as ready for review November 8, 2019 14:18
@AlexanderEggersAlexanderEggers changed the title [Kotlin][Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 2 times, most recently from 617b5a4 to 7920c09CompareNovember 8, 2019 14:32
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

PR is ready for review.

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

@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 4 times, most recently from 89bbec8 to a010d25CompareNovember 11, 2019 08:46
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@wing328 Since I dragged in your PR, the circleci step is failing. Do you have an idea for how to fix that? Besides that, the PR is ready for review. I fixed the merge conflicts that were caused by your PR.

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like a great addition! Just had a few questions.

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Comment threadmodules/openapi-generator/src/main/resources/kotlin-client/api.mustache Outdated
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

Thanks for your feedback. 👍

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Do you mean adding the option to this readme >> https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/kotlin.md

@jimschubert

Copy link
Copy Markdown
Member

@Mordag regarding the default in the generator, I was referring to something like this:

if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {

However, based on the other discussions, it looks like there won't be other changes so I can just pick up the additionalProperties thing later.

My only remaining question on the PR is related to the mediaType guard.

Let me know if you'd like help looking into the CI error. You mentioned it failing after pulling in changes, but I don't see an additional commit (so I didn't know where to begin). It seems from looking at the logs that it failed on Kotlin generation. It could be as simple as missing the executable flag on bin/kotlin-client-nullable.sh

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert I removed the mediaType for now and updated the samples. If all tests are green, the PR should be ready to 🚢.

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert The circleci is going to fail with the same error again. Can you help me try to figure out the root problem?

Mordagand others added 3 commits November 12, 2019 23:31
I've added new .bat files for the kotlin-client to alllow windows-devs to re-generate required samples via windows-shell (for CI).
In this commit I have also made some changes to the kotlin-client-all.bat to make this file a bit more robust regarding different folder structures.
@jimschubert

Copy link
Copy Markdown
Member

@Mordag I've opened AlexanderEggers#1 against your branch. This should resolve the CircleCI issue.

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

Looks like the Shippable failure is just Shippable being flaky on container initialization, it was green on the previous commit, prior to the force push (which removes links to those checks)… see Shippable runs/12015

@AlexanderEggers

AlexanderEggers commented Nov 13, 2019

Copy link
Copy Markdown
ContributorAuthor

@jimschubert Thanks for helping me resolving the issue with the circleci. 👍

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

How do I remove the WIP tag? It doesn't seem that I have the needed permissions for that. The force push is only related to a rebase to master.

@jimschubertjimschubert added Client: Kotlin and removed WIP Work in Progress labels Nov 13, 2019
@jimschubert

Copy link
Copy Markdown
Member

No problem! I've gone ahead and removed the WIP. I see now that it was added by auto-labeler and you have since changed the title (hadn't noticed that earlier).

@jimschubertjimschubert added this to the 4.2.1 milestone Nov 13, 2019
@jimschubert
jimschubert merged commit 34c715e into OpenAPITools:masterNov 13, 2019
@AlexanderEggers
AlexanderEggers deleted the kotlin-nullable branch November 13, 2019 03:50
@wing328

Copy link
Copy Markdown
Member

@Mordag thanks for the PR, which has been included in the v4.2.1 release: https://twitter.com/oas_generator/status/1195339336922759168

Sign up for freeto 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.

[REQ][Kotlin-Client] Add nullable return type for api classes

4 participants

@AlexanderEggers@jimschubert@wing328@Mordag
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Kotlin][Client] Add option to make all api method return a nullable model - #4422

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable
Nov 13, 2019
Merged

[Kotlin][Client] Add option to make all api method return a nullable model#4422
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable

Conversation

@AlexanderEggers

@AlexanderEggersAlexanderEggers commented Nov 8, 2019

Copy link
Copy Markdown
Contributor

Closes#4418

  • added new additional-parameter nullableReturnType
    • converts the api related methods from non-null to nullable
    • change the class member data of ApiInfrastructureResponse.Success to a nullable type
  • added new kotlin-client sample to show the nullable changes
  • added new shell and bash script files

It probably makes sense to merge #4419 first. I will take care of any merge conflicts.

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.

@auto-labelerauto-labelerBot added the WIP Work in Progress label Nov 8, 2019
@auto-labeler

Copy link
Copy Markdown

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

@AlexanderEggersAlexanderEggers changed the title [Kotlin-Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client][WIP] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggers marked this pull request as ready for review November 8, 2019 14:18
@AlexanderEggersAlexanderEggers changed the title [Kotlin][Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 2 times, most recently from 617b5a4 to 7920c09CompareNovember 8, 2019 14:32
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

PR is ready for review.

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

@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 4 times, most recently from 89bbec8 to a010d25CompareNovember 11, 2019 08:46
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@wing328 Since I dragged in your PR, the circleci step is failing. Do you have an idea for how to fix that? Besides that, the PR is ready for review. I fixed the merge conflicts that were caused by your PR.

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like a great addition! Just had a few questions.

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Comment threadmodules/openapi-generator/src/main/resources/kotlin-client/api.mustache Outdated
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

Thanks for your feedback. 👍

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Do you mean adding the option to this readme >> https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/kotlin.md

@jimschubert

Copy link
Copy Markdown
Member

@Mordag regarding the default in the generator, I was referring to something like this:

if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {

However, based on the other discussions, it looks like there won't be other changes so I can just pick up the additionalProperties thing later.

My only remaining question on the PR is related to the mediaType guard.

Let me know if you'd like help looking into the CI error. You mentioned it failing after pulling in changes, but I don't see an additional commit (so I didn't know where to begin). It seems from looking at the logs that it failed on Kotlin generation. It could be as simple as missing the executable flag on bin/kotlin-client-nullable.sh

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert I removed the mediaType for now and updated the samples. If all tests are green, the PR should be ready to 🚢.

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert The circleci is going to fail with the same error again. Can you help me try to figure out the root problem?

Mordagand others added 3 commits November 12, 2019 23:31
I've added new .bat files for the kotlin-client to alllow windows-devs to re-generate required samples via windows-shell (for CI).
In this commit I have also made some changes to the kotlin-client-all.bat to make this file a bit more robust regarding different folder structures.
@jimschubert

Copy link
Copy Markdown
Member

@Mordag I've opened AlexanderEggers#1 against your branch. This should resolve the CircleCI issue.

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

Looks like the Shippable failure is just Shippable being flaky on container initialization, it was green on the previous commit, prior to the force push (which removes links to those checks)… see Shippable runs/12015

@AlexanderEggers

AlexanderEggers commented Nov 13, 2019

Copy link
Copy Markdown
ContributorAuthor

@jimschubert Thanks for helping me resolving the issue with the circleci. 👍

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

How do I remove the WIP tag? It doesn't seem that I have the needed permissions for that. The force push is only related to a rebase to master.

@jimschubertjimschubert added Client: Kotlin and removed WIP Work in Progress labels Nov 13, 2019
@jimschubert

Copy link
Copy Markdown
Member

No problem! I've gone ahead and removed the WIP. I see now that it was added by auto-labeler and you have since changed the title (hadn't noticed that earlier).

@jimschubertjimschubert added this to the 4.2.1 milestone Nov 13, 2019
@jimschubert
jimschubert merged commit 34c715e into OpenAPITools:masterNov 13, 2019
@AlexanderEggers
AlexanderEggers deleted the kotlin-nullable branch November 13, 2019 03:50
@wing328

Copy link
Copy Markdown
Member

@Mordag thanks for the PR, which has been included in the v4.2.1 release: https://twitter.com/oas_generator/status/1195339336922759168

Sign up for freeto 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.

[REQ][Kotlin-Client] Add nullable return type for api classes

4 participants

@AlexanderEggers@jimschubert@wing328@Mordag
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Kotlin][Client] Add option to make all api method return a nullable model - #4422

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable
Nov 13, 2019
Merged

[Kotlin][Client] Add option to make all api method return a nullable model#4422
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable

Conversation

@AlexanderEggers

@AlexanderEggersAlexanderEggers commented Nov 8, 2019

Copy link
Copy Markdown
Contributor

Closes#4418

  • added new additional-parameter nullableReturnType
    • converts the api related methods from non-null to nullable
    • change the class member data of ApiInfrastructureResponse.Success to a nullable type
  • added new kotlin-client sample to show the nullable changes
  • added new shell and bash script files

It probably makes sense to merge #4419 first. I will take care of any merge conflicts.

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.

@auto-labelerauto-labelerBot added the WIP Work in Progress label Nov 8, 2019
@auto-labeler

Copy link
Copy Markdown

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

@AlexanderEggersAlexanderEggers changed the title [Kotlin-Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client][WIP] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggers marked this pull request as ready for review November 8, 2019 14:18
@AlexanderEggersAlexanderEggers changed the title [Kotlin][Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 2 times, most recently from 617b5a4 to 7920c09CompareNovember 8, 2019 14:32
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

PR is ready for review.

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

@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 4 times, most recently from 89bbec8 to a010d25CompareNovember 11, 2019 08:46
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@wing328 Since I dragged in your PR, the circleci step is failing. Do you have an idea for how to fix that? Besides that, the PR is ready for review. I fixed the merge conflicts that were caused by your PR.

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like a great addition! Just had a few questions.

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Comment threadmodules/openapi-generator/src/main/resources/kotlin-client/api.mustache Outdated
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

Thanks for your feedback. 👍

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Do you mean adding the option to this readme >> https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/kotlin.md

@jimschubert

Copy link
Copy Markdown
Member

@Mordag regarding the default in the generator, I was referring to something like this:

if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {

However, based on the other discussions, it looks like there won't be other changes so I can just pick up the additionalProperties thing later.

My only remaining question on the PR is related to the mediaType guard.

Let me know if you'd like help looking into the CI error. You mentioned it failing after pulling in changes, but I don't see an additional commit (so I didn't know where to begin). It seems from looking at the logs that it failed on Kotlin generation. It could be as simple as missing the executable flag on bin/kotlin-client-nullable.sh

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert I removed the mediaType for now and updated the samples. If all tests are green, the PR should be ready to 🚢.

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert The circleci is going to fail with the same error again. Can you help me try to figure out the root problem?

Mordagand others added 3 commits November 12, 2019 23:31
I've added new .bat files for the kotlin-client to alllow windows-devs to re-generate required samples via windows-shell (for CI).
In this commit I have also made some changes to the kotlin-client-all.bat to make this file a bit more robust regarding different folder structures.
@jimschubert

Copy link
Copy Markdown
Member

@Mordag I've opened AlexanderEggers#1 against your branch. This should resolve the CircleCI issue.

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

Looks like the Shippable failure is just Shippable being flaky on container initialization, it was green on the previous commit, prior to the force push (which removes links to those checks)… see Shippable runs/12015

@AlexanderEggers

AlexanderEggers commented Nov 13, 2019

Copy link
Copy Markdown
ContributorAuthor

@jimschubert Thanks for helping me resolving the issue with the circleci. 👍

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

How do I remove the WIP tag? It doesn't seem that I have the needed permissions for that. The force push is only related to a rebase to master.

@jimschubertjimschubert added Client: Kotlin and removed WIP Work in Progress labels Nov 13, 2019
@jimschubert

Copy link
Copy Markdown
Member

No problem! I've gone ahead and removed the WIP. I see now that it was added by auto-labeler and you have since changed the title (hadn't noticed that earlier).

@jimschubertjimschubert added this to the 4.2.1 milestone Nov 13, 2019
@jimschubert
jimschubert merged commit 34c715e into OpenAPITools:masterNov 13, 2019
@AlexanderEggers
AlexanderEggers deleted the kotlin-nullable branch November 13, 2019 03:50
@wing328

Copy link
Copy Markdown
Member

@Mordag thanks for the PR, which has been included in the v4.2.1 release: https://twitter.com/oas_generator/status/1195339336922759168

Sign up for freeto 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.

[REQ][Kotlin-Client] Add nullable return type for api classes

4 participants

@AlexanderEggers@jimschubert@wing328@Mordag
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[Kotlin][Client] Add option to make all api method return a nullable model - #4422

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable
Nov 13, 2019
Merged

[Kotlin][Client] Add option to make all api method return a nullable model#4422
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable

Conversation

@AlexanderEggers

@AlexanderEggersAlexanderEggers commented Nov 8, 2019

Copy link
Copy Markdown
Contributor

Closes#4418

  • added new additional-parameter nullableReturnType
    • converts the api related methods from non-null to nullable
    • change the class member data of ApiInfrastructureResponse.Success to a nullable type
  • added new kotlin-client sample to show the nullable changes
  • added new shell and bash script files

It probably makes sense to merge #4419 first. I will take care of any merge conflicts.

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.

@auto-labelerauto-labelerBot added the WIP Work in Progress label Nov 8, 2019
@auto-labeler

Copy link
Copy Markdown

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

@AlexanderEggersAlexanderEggers changed the title [Kotlin-Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client][WIP] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggers marked this pull request as ready for review November 8, 2019 14:18
@AlexanderEggersAlexanderEggers changed the title [Kotlin][Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 2 times, most recently from 617b5a4 to 7920c09CompareNovember 8, 2019 14:32
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

PR is ready for review.

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

@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 4 times, most recently from 89bbec8 to a010d25CompareNovember 11, 2019 08:46
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@wing328 Since I dragged in your PR, the circleci step is failing. Do you have an idea for how to fix that? Besides that, the PR is ready for review. I fixed the merge conflicts that were caused by your PR.

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like a great addition! Just had a few questions.

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Comment threadmodules/openapi-generator/src/main/resources/kotlin-client/api.mustache Outdated
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

Thanks for your feedback. 👍

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Do you mean adding the option to this readme >> https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/kotlin.md

@jimschubert

Copy link
Copy Markdown
Member

@Mordag regarding the default in the generator, I was referring to something like this:

if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {

However, based on the other discussions, it looks like there won't be other changes so I can just pick up the additionalProperties thing later.

My only remaining question on the PR is related to the mediaType guard.

Let me know if you'd like help looking into the CI error. You mentioned it failing after pulling in changes, but I don't see an additional commit (so I didn't know where to begin). It seems from looking at the logs that it failed on Kotlin generation. It could be as simple as missing the executable flag on bin/kotlin-client-nullable.sh

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert I removed the mediaType for now and updated the samples. If all tests are green, the PR should be ready to 🚢.

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert The circleci is going to fail with the same error again. Can you help me try to figure out the root problem?

Mordagand others added 3 commits November 12, 2019 23:31
I've added new .bat files for the kotlin-client to alllow windows-devs to re-generate required samples via windows-shell (for CI).
In this commit I have also made some changes to the kotlin-client-all.bat to make this file a bit more robust regarding different folder structures.
@jimschubert

Copy link
Copy Markdown
Member

@Mordag I've opened AlexanderEggers#1 against your branch. This should resolve the CircleCI issue.

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

Looks like the Shippable failure is just Shippable being flaky on container initialization, it was green on the previous commit, prior to the force push (which removes links to those checks)… see Shippable runs/12015

@AlexanderEggers

AlexanderEggers commented Nov 13, 2019

Copy link
Copy Markdown
ContributorAuthor

@jimschubert Thanks for helping me resolving the issue with the circleci. 👍

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

How do I remove the WIP tag? It doesn't seem that I have the needed permissions for that. The force push is only related to a rebase to master.

@jimschubertjimschubert added Client: Kotlin and removed WIP Work in Progress labels Nov 13, 2019
@jimschubert

Copy link
Copy Markdown
Member

No problem! I've gone ahead and removed the WIP. I see now that it was added by auto-labeler and you have since changed the title (hadn't noticed that earlier).

@jimschubertjimschubert added this to the 4.2.1 milestone Nov 13, 2019
@jimschubert
jimschubert merged commit 34c715e into OpenAPITools:masterNov 13, 2019
@AlexanderEggers
AlexanderEggers deleted the kotlin-nullable branch November 13, 2019 03:50
@wing328

Copy link
Copy Markdown
Member

@Mordag thanks for the PR, which has been included in the v4.2.1 release: https://twitter.com/oas_generator/status/1195339336922759168

Sign up for freeto 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.

[REQ][Kotlin-Client] Add nullable return type for api classes

4 participants

@AlexanderEggers@jimschubert@wing328@Mordag
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Kotlin][Client] Add option to make all api method return a nullable model - #4422

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable
Nov 13, 2019
Merged

[Kotlin][Client] Add option to make all api method return a nullable model#4422
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable

Conversation

@AlexanderEggers

@AlexanderEggersAlexanderEggers commented Nov 8, 2019

Copy link
Copy Markdown
Contributor

Closes#4418

  • added new additional-parameter nullableReturnType
    • converts the api related methods from non-null to nullable
    • change the class member data of ApiInfrastructureResponse.Success to a nullable type
  • added new kotlin-client sample to show the nullable changes
  • added new shell and bash script files

It probably makes sense to merge #4419 first. I will take care of any merge conflicts.

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.

@auto-labelerauto-labelerBot added the WIP Work in Progress label Nov 8, 2019
@auto-labeler

Copy link
Copy Markdown

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

@AlexanderEggersAlexanderEggers changed the title [Kotlin-Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client][WIP] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggers marked this pull request as ready for review November 8, 2019 14:18
@AlexanderEggersAlexanderEggers changed the title [Kotlin][Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 2 times, most recently from 617b5a4 to 7920c09CompareNovember 8, 2019 14:32
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

PR is ready for review.

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

@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 4 times, most recently from 89bbec8 to a010d25CompareNovember 11, 2019 08:46
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@wing328 Since I dragged in your PR, the circleci step is failing. Do you have an idea for how to fix that? Besides that, the PR is ready for review. I fixed the merge conflicts that were caused by your PR.

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like a great addition! Just had a few questions.

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Comment threadmodules/openapi-generator/src/main/resources/kotlin-client/api.mustache Outdated
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

Thanks for your feedback. 👍

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Do you mean adding the option to this readme >> https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/kotlin.md

@jimschubert

Copy link
Copy Markdown
Member

@Mordag regarding the default in the generator, I was referring to something like this:

if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {

However, based on the other discussions, it looks like there won't be other changes so I can just pick up the additionalProperties thing later.

My only remaining question on the PR is related to the mediaType guard.

Let me know if you'd like help looking into the CI error. You mentioned it failing after pulling in changes, but I don't see an additional commit (so I didn't know where to begin). It seems from looking at the logs that it failed on Kotlin generation. It could be as simple as missing the executable flag on bin/kotlin-client-nullable.sh

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert I removed the mediaType for now and updated the samples. If all tests are green, the PR should be ready to 🚢.

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert The circleci is going to fail with the same error again. Can you help me try to figure out the root problem?

Mordagand others added 3 commits November 12, 2019 23:31
I've added new .bat files for the kotlin-client to alllow windows-devs to re-generate required samples via windows-shell (for CI).
In this commit I have also made some changes to the kotlin-client-all.bat to make this file a bit more robust regarding different folder structures.
@jimschubert

Copy link
Copy Markdown
Member

@Mordag I've opened AlexanderEggers#1 against your branch. This should resolve the CircleCI issue.

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

Looks like the Shippable failure is just Shippable being flaky on container initialization, it was green on the previous commit, prior to the force push (which removes links to those checks)… see Shippable runs/12015

@AlexanderEggers

AlexanderEggers commented Nov 13, 2019

Copy link
Copy Markdown
ContributorAuthor

@jimschubert Thanks for helping me resolving the issue with the circleci. 👍

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

How do I remove the WIP tag? It doesn't seem that I have the needed permissions for that. The force push is only related to a rebase to master.

@jimschubertjimschubert added Client: Kotlin and removed WIP Work in Progress labels Nov 13, 2019
@jimschubert

Copy link
Copy Markdown
Member

No problem! I've gone ahead and removed the WIP. I see now that it was added by auto-labeler and you have since changed the title (hadn't noticed that earlier).

@jimschubertjimschubert added this to the 4.2.1 milestone Nov 13, 2019
@jimschubert
jimschubert merged commit 34c715e into OpenAPITools:masterNov 13, 2019
@AlexanderEggers
AlexanderEggers deleted the kotlin-nullable branch November 13, 2019 03:50
@wing328

Copy link
Copy Markdown
Member

@Mordag thanks for the PR, which has been included in the v4.2.1 release: https://twitter.com/oas_generator/status/1195339336922759168

Sign up for freeto 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.

[REQ][Kotlin-Client] Add nullable return type for api classes

4 participants

@AlexanderEggers@jimschubert@wing328@Mordag
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Kotlin][Client] Add option to make all api method return a nullable model - #4422

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable
Nov 13, 2019
Merged

[Kotlin][Client] Add option to make all api method return a nullable model#4422
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable

Conversation

@AlexanderEggers

@AlexanderEggersAlexanderEggers commented Nov 8, 2019

Copy link
Copy Markdown
Contributor

Closes#4418

  • added new additional-parameter nullableReturnType
    • converts the api related methods from non-null to nullable
    • change the class member data of ApiInfrastructureResponse.Success to a nullable type
  • added new kotlin-client sample to show the nullable changes
  • added new shell and bash script files

It probably makes sense to merge #4419 first. I will take care of any merge conflicts.

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.

@auto-labelerauto-labelerBot added the WIP Work in Progress label Nov 8, 2019
@auto-labeler

Copy link
Copy Markdown

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

@AlexanderEggersAlexanderEggers changed the title [Kotlin-Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client][WIP] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggers marked this pull request as ready for review November 8, 2019 14:18
@AlexanderEggersAlexanderEggers changed the title [Kotlin][Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 2 times, most recently from 617b5a4 to 7920c09CompareNovember 8, 2019 14:32
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

PR is ready for review.

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

@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 4 times, most recently from 89bbec8 to a010d25CompareNovember 11, 2019 08:46
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@wing328 Since I dragged in your PR, the circleci step is failing. Do you have an idea for how to fix that? Besides that, the PR is ready for review. I fixed the merge conflicts that were caused by your PR.

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like a great addition! Just had a few questions.

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Comment threadmodules/openapi-generator/src/main/resources/kotlin-client/api.mustache Outdated
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

Thanks for your feedback. 👍

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Do you mean adding the option to this readme >> https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/kotlin.md

@jimschubert

Copy link
Copy Markdown
Member

@Mordag regarding the default in the generator, I was referring to something like this:

if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {

However, based on the other discussions, it looks like there won't be other changes so I can just pick up the additionalProperties thing later.

My only remaining question on the PR is related to the mediaType guard.

Let me know if you'd like help looking into the CI error. You mentioned it failing after pulling in changes, but I don't see an additional commit (so I didn't know where to begin). It seems from looking at the logs that it failed on Kotlin generation. It could be as simple as missing the executable flag on bin/kotlin-client-nullable.sh

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert I removed the mediaType for now and updated the samples. If all tests are green, the PR should be ready to 🚢.

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert The circleci is going to fail with the same error again. Can you help me try to figure out the root problem?

Mordagand others added 3 commits November 12, 2019 23:31
I've added new .bat files for the kotlin-client to alllow windows-devs to re-generate required samples via windows-shell (for CI).
In this commit I have also made some changes to the kotlin-client-all.bat to make this file a bit more robust regarding different folder structures.
@jimschubert

Copy link
Copy Markdown
Member

@Mordag I've opened AlexanderEggers#1 against your branch. This should resolve the CircleCI issue.

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

Looks like the Shippable failure is just Shippable being flaky on container initialization, it was green on the previous commit, prior to the force push (which removes links to those checks)… see Shippable runs/12015

@AlexanderEggers

AlexanderEggers commented Nov 13, 2019

Copy link
Copy Markdown
ContributorAuthor

@jimschubert Thanks for helping me resolving the issue with the circleci. 👍

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

How do I remove the WIP tag? It doesn't seem that I have the needed permissions for that. The force push is only related to a rebase to master.

@jimschubertjimschubert added Client: Kotlin and removed WIP Work in Progress labels Nov 13, 2019
@jimschubert

Copy link
Copy Markdown
Member

No problem! I've gone ahead and removed the WIP. I see now that it was added by auto-labeler and you have since changed the title (hadn't noticed that earlier).

@jimschubertjimschubert added this to the 4.2.1 milestone Nov 13, 2019
@jimschubert
jimschubert merged commit 34c715e into OpenAPITools:masterNov 13, 2019
@AlexanderEggers
AlexanderEggers deleted the kotlin-nullable branch November 13, 2019 03:50
@wing328

Copy link
Copy Markdown
Member

@Mordag thanks for the PR, which has been included in the v4.2.1 release: https://twitter.com/oas_generator/status/1195339336922759168

Sign up for freeto 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.

[REQ][Kotlin-Client] Add nullable return type for api classes

4 participants

@AlexanderEggers@jimschubert@wing328@Mordag
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[Kotlin][Client] Add option to make all api method return a nullable model - #4422

Merged
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable
Nov 13, 2019
Merged

[Kotlin][Client] Add option to make all api method return a nullable model#4422
jimschubert merged 4 commits into
OpenAPITools:masterfrom
AlexanderEggers:kotlin-nullable

Conversation

@AlexanderEggers

@AlexanderEggersAlexanderEggers commented Nov 8, 2019

Copy link
Copy Markdown
Contributor

Closes#4418

  • added new additional-parameter nullableReturnType
    • converts the api related methods from non-null to nullable
    • change the class member data of ApiInfrastructureResponse.Success to a nullable type
  • added new kotlin-client sample to show the nullable changes
  • added new shell and bash script files

It probably makes sense to merge #4419 first. I will take care of any merge conflicts.

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.

@auto-labelerauto-labelerBot added the WIP Work in Progress label Nov 8, 2019
@auto-labeler

Copy link
Copy Markdown

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

@AlexanderEggersAlexanderEggers changed the title [Kotlin-Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client][WIP] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggers marked this pull request as ready for review November 8, 2019 14:18
@AlexanderEggersAlexanderEggers changed the title [Kotlin][Client][WIP] Add option to make all api method return a nullable model[Kotlin][Client] Add option to make all api method return a nullable modelNov 8, 2019
@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 2 times, most recently from 617b5a4 to 7920c09CompareNovember 8, 2019 14:32
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

PR is ready for review.

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

@AlexanderEggers
AlexanderEggersforce-pushed the kotlin-nullable branch 4 times, most recently from 89bbec8 to a010d25CompareNovember 11, 2019 08:46
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@wing328 Since I dragged in your PR, the circleci step is failing. Do you have an idea for how to fix that? Besides that, the PR is ready for review. I fixed the merge conflicts that were caused by your PR.

@jimschubertjimschubert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like a great addition! Just had a few questions.

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Comment threadmodules/openapi-generator/src/main/resources/kotlin-client/api.mustache Outdated
@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

Thanks for your feedback. 👍

Should we also maybe consider adding a default of false to the generator, so it's clear in code that this is an option? I eventually want to make additionalProperties sorted by embedded templates to be discoverable.

Do you mean adding the option to this readme >> https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/kotlin.md

@jimschubert

Copy link
Copy Markdown
Member

@Mordag regarding the default in the generator, I was referring to something like this:

if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {

However, based on the other discussions, it looks like there won't be other changes so I can just pick up the additionalProperties thing later.

My only remaining question on the PR is related to the mediaType guard.

Let me know if you'd like help looking into the CI error. You mentioned it failing after pulling in changes, but I don't see an additional commit (so I didn't know where to begin). It seems from looking at the logs that it failed on Kotlin generation. It could be as simple as missing the executable flag on bin/kotlin-client-nullable.sh

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert I removed the mediaType for now and updated the samples. If all tests are green, the PR should be ready to 🚢.

@AlexanderEggers

Copy link
Copy Markdown
ContributorAuthor

@jimschubert The circleci is going to fail with the same error again. Can you help me try to figure out the root problem?

Mordagand others added 3 commits November 12, 2019 23:31
I've added new .bat files for the kotlin-client to alllow windows-devs to re-generate required samples via windows-shell (for CI).
In this commit I have also made some changes to the kotlin-client-all.bat to make this file a bit more robust regarding different folder structures.
@jimschubert

Copy link
Copy Markdown
Member

@Mordag I've opened AlexanderEggers#1 against your branch. This should resolve the CircleCI issue.

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

Looks like the Shippable failure is just Shippable being flaky on container initialization, it was green on the previous commit, prior to the force push (which removes links to those checks)… see Shippable runs/12015

@AlexanderEggers

AlexanderEggers commented Nov 13, 2019

Copy link
Copy Markdown
ContributorAuthor

@jimschubert Thanks for helping me resolving the issue with the circleci. 👍

I didn't merge and fix up in master because your PR is still marked WIP, and GitHub makes it look like you did a force push after you gave thumbs up. If you merge the PR and remove WIP, then I think your changes look good and can be merged once CI is green.

How do I remove the WIP tag? It doesn't seem that I have the needed permissions for that. The force push is only related to a rebase to master.

@jimschubertjimschubert added Client: Kotlin and removed WIP Work in Progress labels Nov 13, 2019
@jimschubert

Copy link
Copy Markdown
Member

No problem! I've gone ahead and removed the WIP. I see now that it was added by auto-labeler and you have since changed the title (hadn't noticed that earlier).

@jimschubertjimschubert added this to the 4.2.1 milestone Nov 13, 2019
@jimschubert
jimschubert merged commit 34c715e into OpenAPITools:masterNov 13, 2019
@AlexanderEggers
AlexanderEggers deleted the kotlin-nullable branch November 13, 2019 03:50
@wing328

Copy link
Copy Markdown
Member

@Mordag thanks for the PR, which has been included in the v4.2.1 release: https://twitter.com/oas_generator/status/1195339336922759168

Sign up for freeto 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.

[REQ][Kotlin-Client] Add nullable return type for api classes

4 participants

@AlexanderEggers@jimschubert@wing328@Mordag