fix(): Updated types for Specific ApiResponse decorator options to omit status #2877
+212
−27
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.
Decorators like ApiOkResponse always override the status to a specific code.
Devs might think they are overriding the status but it's actually a no-op.
Updated the types of the options to raise an error if status is passed.
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
Issue Number: N/A
Someone specifying a method like
Might think it will return a 201 response, But it's easy to miss the
Ok
inApiOkResponse
vsApiResponse
What is the new behavior?
The code above will not compile because
status
is no longer an accepted option for Response decorators that override the statusDoes this PR introduce a breaking change?
Migration path is to remove
status
options on affected Response decorators as they were unused.If the Response needed to have a different status, instead replace the decorator with
ApiResponse
Other information
An alternative would be to change the decorators to
Allowing to override the status, but that sounds even more dangerous because it would change the runtime of existing code instead of just having a compile error