-
Notifications
You must be signed in to change notification settings - Fork 142
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
Include more information in RecordNotFound errors. #214
Include more information in RecordNotFound errors. #214
Conversation
What do people think of a change like this? Putting it up as a RFC / WIP. |
I was about to open an issue on this topic, having some way to identify or modify this behavior would be really nice. Including additional information in the error payload seems like a good first step in improving how the client can handle this. I'm also curious whether there is some way to handle this scenario without throwing, and instead allowing model validation errors to deliver the message. |
I agree this is great, thanks @jackcasey ! If you can please make the standardrb check pass I will happily merge. To @aribouius there may be additional improvements we can make, but let's tackle them in a separate issue |
@richmolj yep totally agree 👍 |
f9e799e
to
8853937
Compare
When supplying a relationship to an existing resource, if the record cannot be found then supply the resource name, id and relative json path in the Graphiti::Errors::NotFound exception raised.
8853937
to
b8f40ed
Compare
Thanks so much @jackcasey ❤️ ! |
[This issue](graphiti-api/graphiti-rails#65) raised the idea that we should be treating a missing sideposted record as a validation, not a 401. In the course of this work I found [this older PR](graphiti-api#214), which initially raised the same point iin [this comment](graphiti-api#214 (comment)). I very much agree that this should be a validation error, not a 401, but it breaks backwards compatibility. So, you can opt-in to this behavior with `Graphiti.config.raise_on_missing_sidepost = false`. We should consider this a best practice going forward and note it in the blog.
[This issue](graphiti-api/graphiti-rails#65) raised the idea that we should be treating a missing sideposted record as a validation, not a 401. In the course of this work I found [this older PR](graphiti-api#214), which initially raised the same point iin [this comment](graphiti-api#214 (comment)). I very much agree that this should be a validation error, not a 401, but it breaks backwards compatibility. So, you can opt-in to this behavior with `Graphiti.config.raise_on_missing_sidepost = false`. We should consider this a best practice going forward and note it in the blog.
When supplying a relationship to an existing resource, if the record cannot
be found then supply the resource name, id and relative json path in the
Graphiti::Errors::NotFound
exception raised.