server: improve error handling #387
Open
+109
−100
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.
Based on #375
Closes #374
This basically turns
AppError
into an enum, and changes previous uses of it to use specific values.A new public
Error
was introduced which is effectively the JSON value returned on error, and it's what client will interact with. TheAppError
is converted intoError
in itsIntoResponse
implementation, which is used by axum when convertingAppError
into a response.Since clients will only see the
code
andmsg
fields, I added aconst
for each error enum. We might want to allow converting anError
back to anAppError
for Rust clients, but I don't think we need to worry about that for now.