Skip to content
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

Merged

Conversation

jackcasey
Copy link
Contributor

@jackcasey jackcasey commented Mar 5, 2020

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.

@jackcasey
Copy link
Contributor Author

What do people think of a change like this?

Putting it up as a RFC / WIP.

@aribouius
Copy link
Contributor

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.

@richmolj
Copy link
Contributor

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

@aribouius
Copy link
Contributor

@richmolj yep totally agree 👍

@jackcasey jackcasey force-pushed the feature/better_relationship_errors branch 2 times, most recently from f9e799e to 8853937 Compare March 17, 2020 03:31
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.
@jackcasey jackcasey force-pushed the feature/better_relationship_errors branch from 8853937 to b8f40ed Compare March 17, 2020 03:44
@jackcasey
Copy link
Contributor Author

@richmolj

@richmolj richmolj merged commit d940ef8 into graphiti-api:master Mar 17, 2020
@richmolj
Copy link
Contributor

Thanks so much @jackcasey ❤️ !

richmolj pushed a commit to richmolj/graphiti that referenced this pull request Jan 30, 2021
[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.
richmolj pushed a commit to richmolj/graphiti that referenced this pull request Feb 1, 2021
[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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants