Include the executed route in RestApiException #125
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.
Description
At the present moment, due to inlining hiding the method calling InternalExecuteAsync from the stack trace, it is difficult to discern at a glance which REST API route was responsible for generating a RestApiException. This PR exposes an
IFormattedRoute
property on RestApiException, granting bot developers more access to finding the route cause of an API exception on their end.To note, while
IFormattedRoute
is the type I chose to include for more granular control, only theIFormattableRoute
is exposed when it comes to generating the exception message, to avoid exposing potentially sensitive information in logs:The route is formatted identically to how the verbose/debug logs format for rate-limit buckets are formatted. I originally formatted it as
PATCH channels/{0:channel_id}
, as I think it looks better, but for consistency I chose to keep it the same.Checklist