-
Notifications
You must be signed in to change notification settings - Fork 12
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
feat!: convert stream error responses #1663
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
eiri
reviewed
Nov 4, 2024
eiri
reviewed
Nov 4, 2024
eiri
reviewed
Nov 4, 2024
eiri
approved these changes
Nov 4, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple of nits, but overall looks fine to me
mojito317
reviewed
Nov 5, 2024
mojito317
approved these changes
Nov 5, 2024
ricellis
force-pushed
the
s1022-stream-error-converter
branch
from
November 5, 2024 16:13
e2f1e37
to
089b942
Compare
mojito317
reviewed
Nov 6, 2024
mojito317
reviewed
Nov 6, 2024
mojito317
approved these changes
Nov 6, 2024
eiri
approved these changes
Nov 6, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
Reject with a parsed JSON object for streaming response cases. BREAKING CHANGE: Error responses from *AsStream endpoints now return a JSON object on the rejected promise instead of the raw stream. Successful responses continue to provide a stream result.
ricellis
force-pushed
the
s1022-stream-error-converter
branch
from
November 6, 2024 13:39
17cb22e
to
f3cca19
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
PR summary
Add interceptor for converting streamed error responses to error objects.
Fixes: s1022
Note: An existing issue is required before opening a PR.
PR Checklist
Please make sure that your PR fulfills the following requirements:
Angular Commit Message Guidelines.
PR Type
What is the current behavior?
For
*AsStrream
endpoint successful responses are returned asReadable
streams. In the case of an error the error response body is also provided as aReadable
by the SDK core. This deviates from the behaviour of errors from all other endpoints and prevents the SDK core from, for example, formatting the error response nicely. It also prevents the new improved error responses from #1646 from functioning for*AsStream
calls.What is the new behavior?
For unsuccessful responses the error response body is automatically converted from the
Readable
into a JSON object. This means error handling behaviour can be the same for all endpoints and the enhancements from the error response interceptor and error formatting code paths can be applied to stream error cases as well.Does this PR introduce a breaking change?
No change for success responses.
For error responses the error's
result
is converted from a stream to an object.User code that catches the rejection and tries to process the
result
as a stream will need modification.Other information
Modified existing tests
error_no_augment_stream
becomeserror_augment_stream
,Removed obsolete stream handling code in tests.
Modified the interceptor assertion code to account for the presence of two interceptors and validate the ordering.