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

fix: curl entries array support within multipart/form-data (#3838) #5999

Merged
merged 1 commit into from
May 13, 2020

Conversation

tim-lai
Copy link
Contributor

@tim-lai tim-lai commented May 12, 2020

Description

  1. SwaggerClient returned incorrect FormData object that did not support multiple key names. This is now fixed in SwaggerClient.
  2. SwaggerUI utils.fromJSOrdered
    a. Immutable's OrderedMap does not support duplicate keynames, and will overwrite with new value(s)
    b. We now create an object, if multiple, where a hashIndex is appended to the original keyname, along with a counter
    c. If multiple, the original key name (without hashIndex) is deleted
    d. This object is returned and used to change state for spec.mutatedRequest
    e. curlify.js is modified to check for presence of hashIndex, and is able to extract the original key name to push into its return array (to join into String)
  3. Sidenote, spec.mutatedRequest appears to only be used for the Curl component within SwaggerUI

Motivation and Context

Fixes #3838

How Has This Been Tested?

New test added to verify handling of hashIdx

Screenshots (if appropriate):

Checklist

My PR contains...

  • No code changes (src/ is unmodified: changes to documentation, CI, metadata, etc.)
  • Dependency changes (any modification to dependencies in package.json)
  • Bug fixes (non-breaking change which fixes an issue)
  • Improvements (misc. changes to existing features)
  • Features (non-breaking change which adds functionality)

My changes...

  • are breaking changes to a public API (config options, System API, major UI change, etc).
  • are breaking changes to a private API (Redux, component props, utility functions, etc.).
  • are breaking changes to a developer API (npm script behavior changes, new dev system dependencies, etc).
  • are not breaking changes.

Documentation

  • My changes do not require a change to the project documentation.
  • My changes require a change to the project documentation.
  • If yes to above: I have updated the documentation accordingly.

Automated tests

  • My changes can not or do not need to be tested.
  • My changes can and should be tested by unit and/or integration tests.
  • If yes to above: I have added tests to cover my changes.
  • If yes to above: I have taken care to cover edge cases in my tests.
  • All new and existing tests passed.

ft: utils.createObjWithHashedKeys
ft: curlify.extractKey
test: curlify with array representation
@tim-lai tim-lai requested a review from char0n May 12, 2020 03:29
@tim-lai tim-lai changed the title fix: curl array support within multipart/form-data (#3838) fix: curl entries array support within multipart/form-data (#3838) May 12, 2020
@tim-lai
Copy link
Contributor Author

tim-lai commented May 12, 2020

please build

@dfeinzeig
Copy link

the ability to actually choose files is now broken:

image

Pentusha added a commit to Pentusha/swagger-ui that referenced this pull request May 27, 2020
* 'master' of github.com:swagger-api/swagger-ui: (37 commits)
  release: v3.25.4
  chore(package): bump swagger-client to 3.10.4 version
  fix: entries as property name (swagger-api#6025)
  release: v3.25.3
  housekeeping: update release-it config (swagger-api#6009)
  housekeeping: bump swagger-client version with package-lock (swagger-api#6008)
  housekeeping: update dev-e2e-cypress-open script name (swagger-api#6005)
  fix: jsonSchemaComponent file/files (swagger-api#5997) (swagger-api#6000)
  fix: curl array support within multipart/form-data (swagger-api#3838) (swagger-api#5999)
  release: v3.25.2
  bug: remove clearValidation from onTryoutClick (swagger-api#5955)
  ft: JsonSchema components are now ImmutableJS compliant (swagger-api#5952)
  release: v3.25.1
  housekeeping: revert @release-it/conventional-changelog version (swagger-api#5976)
  housekeeping: add missing conventional-changelog devDeps (swagger-api#5975)
  docs: update plugin api component for failSilently (swagger-api#5953)
  housekeeping: `npm audit fix` (swagger-api#5948)
  housekeeping: prevent log warning for missing getComponent in production
  fix(docker-image): send relative HTTP 301s from within container (swagger-api#5409)
  support for supportedSubmitMethods property in react component (swagger-api#5376)
  ...
@JustMik
Copy link
Contributor

JustMik commented May 29, 2020

the ability to actually choose files is now broken:

image

#6040 this fix the choose file for array items

@tim-lai tim-lai mentioned this pull request Jun 11, 2020
17 tasks
mattyb678 pushed a commit to mattyb678/swagger-ui that referenced this pull request Jun 24, 2020
…swagger-api#5999)

ft: utils.createObjWithHashedKeys
ft: curlify.extractKey
test: curlify with array representation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

broken curl commands for formData with collectionFormat=multi
3 participants