-
Notifications
You must be signed in to change notification settings - Fork 7
Don't override businessInformation #74
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
base: main
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| { | ||
| "printWidth": 100, | ||
| "singleQuote": true | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -170,17 +170,20 @@ const applyOpenapiAsDefaults = ( | |
| apiDef: Wso2ApiDefinitionV1, | ||
| ): Wso2ApiDefinitionV1 => { | ||
| const apiDefr = { ...apiDef }; | ||
| // user openapi contact info for business/technical information of the api | ||
| // use openapi contact info for business/technical information of the api | ||
| if ( | ||
| (!apiDefr.businessInformation && openapiDocument.info.contact?.email) || | ||
| openapiDocument.info.contact?.name | ||
| !apiDefr.businessInformation && | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Even if businessInformation is set, we should use the info from info.contact.email/name, don't we? Maybe we could change the logic to always try to set the info based on "info.contact" if it exists. What do you think?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's indeed the general design question we need to find a good answer to! I think there's three options. Let's take the version field as an example and say the OpenAPI document contains a version with value v1, and the user passes a version with value v2, e.g.
I think option 1 is the best as it gives clear defaults, and allows for the user to override these fields where needed. Let's take a user that wants to learn about publishing to WSO2 and who takes the Petstore OpenAPI document as an example OpenAPI document. Do we want them to make changes to the OpenAPI document and set its contact information correctly, or do we want them to simply pass the correct contact information when writing the
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Great summary on this matter! I vote for option 2. As if we go for option 1, then we should change the name of the property to "default info xxx" to make it more clear and we don't want a breaking change now :) The idea of this property was to be a "sugar" attribute to set these info correctly in OpenAI doc, but I see the mixed behavior causes confusion. So let's go to option 1. What do you think? |
||
| (openapiDocument.info.contact?.email || openapiDocument.info.contact?.name) | ||
| ) { | ||
| apiDefr.businessInformation = { | ||
| businessOwnerEmail: openapiDocument.info.contact?.email, | ||
| technicalOwnerEmail: openapiDocument.info.contact?.email, | ||
| technicalOwner: openapiDocument.info.contact?.name, | ||
| businessOwner: openapiDocument.info.contact?.name, | ||
| }; | ||
| apiDefr.businessInformation = {}; | ||
| if (openapiDocument.info.contact?.email) { | ||
| apiDefr.businessInformation.businessOwnerEmail = openapiDocument.info.contact?.email; | ||
| apiDefr.businessInformation.technicalOwnerEmail = openapiDocument.info.contact?.email; | ||
| } | ||
| if (openapiDocument.info.contact?.name) { | ||
| apiDefr.businessInformation.businessOwner = openapiDocument.info.contact?.name; | ||
| apiDefr.businessInformation.technicalOwner = openapiDocument.info.contact?.name; | ||
| } | ||
| } | ||
|
|
||
| if (!apiDefr.description && openapiDocument.info.description) { | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.