Validate params only if another param is present #1047
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements #958 (sort of). This allows for the use case where you have some parameters to an endpoint which are only relevant or meaningful if some other parameters are given. It can be used like so:
Nested use cases work, too:
One concern: This type of relationship won't show up properly in grape-swagger, or anything which looks at
Route#route_params
to inspect parameter definitions; even though the elements in thegiven
block are actually optional unlessshelf_id
is given,Route#route_params
will indicate thatbin_id
is required. I could probably get that to instead show up as optional, but I don't know if that's ideal.