feat(router): support giving back json when a request fail
Fixes #1619
Okay, so this is very wip, but I wanted to get it out to see if I'm thinking about this correctly before doing more work on this 🙂
The error "shape" is taken from Laravel, which I think it is pretty easy to work with: invalid & generic.
But it should probably be discussed how it should look (maybe problem details or some other easier "standard").
EDIT:
Another thing im thinking about is this:
if ($response->status->isServerError() || $response->status->isClientError()) {
throw new HttpRequestFailed(
request: $request,
status: $response->status,
cause: $response,
);
}
Maybe the errors that are handled by the middleware (in forward) shouldn't be cast to HttpRequestFailed?
ConvertsToResponse, ValidationFailed and RouteBindingFailed.
Wanted to check up: what needs to be done for this one, and can I help? Just want to make sure we don't loose track: it's a good feature and I'd like to see it merged 👍
Wanted to check up: what needs to be done for this one, and can I help? Just want to make sure we don't loose track: it's a good feature and I'd like to see it merged 👍
Hi, I haven't had a lot of time (nor energy tbh) the last few weeks, but I do have some stuff locally that I'll clean up and push up asap :)
Whats left:
- Tests for the "exceptionRenderers"
- Router tests
- Make sure that the
acceptsguard has all the correct html content types
And I did try to remove the throwHttpExceptions thinggy but it triggered a lot of other components to fail so I'll leave that to someone else 😅
This pull request is stale because it has been open for 30 days with no activity.
This pull request was closed because it has been inactive for 1 day since being marked as stale.
Let's close for now since the PR seems inactive. Happy to revive it when there's time :)
I might take a look at this at the same time I take a look at https://github.com/tempestphp/tempest-framework/issues/1805
I might take a look at this at the same time I take a look at https://github.com/tempestphp/tempest-framework/issues/1805
That would be great! I have unfortunatly not had the time to work more on this.
Though ive been thinking about it and Im wondering if doing it like dotnet does might be nice? (register a exception handler, if it returns false, try the next, until the default one is ran)