|
3 | 3 | namespace Tempest\Router; |
4 | 4 |
|
5 | 5 | use Tempest\Core\Priority; |
| 6 | +use Tempest\Http\ContentType; |
6 | 7 | use Tempest\Http\HttpRequestFailed; |
7 | 8 | use Tempest\Http\Request; |
8 | 9 | use Tempest\Http\Response; |
@@ -45,27 +46,22 @@ public function __invoke(Request $request, HttpMiddlewareCallable $next): Respon |
45 | 46 | return $this->forward($request, $next); |
46 | 47 | } |
47 | 48 |
|
48 | | - private function wantsJson(Request $request): bool |
49 | | - { |
50 | | - return $request->headers->get('Accept') === 'application/json'; |
51 | | - } |
52 | | - |
53 | 49 | private function forward(Request $request, HttpMiddlewareCallable $next): Response |
54 | 50 | { |
55 | 51 | try { |
56 | 52 | return $next($request); |
57 | 53 | } catch (ConvertsToResponse $convertsToResponse) { |
58 | 54 | return $convertsToResponse->toResponse(); |
59 | 55 | } catch (RouteBindingFailed) { |
60 | | - if ($this->wantsJson($request)) { |
| 56 | + if ($request->accepts(ContentType::JSON)) { |
61 | 57 | return new NotFound([ |
62 | 58 | 'message' => 'The requested resource was not found.', |
63 | 59 | ]); |
64 | 60 | } |
65 | 61 |
|
66 | 62 | return new NotFound(); |
67 | 63 | } catch (ValidationFailed $validationException) { |
68 | | - if ($this->wantsJson($request)) { |
| 64 | + if ($request->accepts(ContentType::JSON)) { |
69 | 65 | $errors = arr($validationException->failingRules)->map( |
70 | 66 | fn (array $failingRulesForField, string $field) => arr($failingRulesForField)->map( |
71 | 67 | fn (Rule $rule) => get(Validator::class)->getErrorMessage($rule, $field), |
|
0 commit comments