Skip to content

Commit 0edb80c

Browse files
committed
wip
1 parent 8b26c1c commit 0edb80c

File tree

6 files changed

+19
-15
lines changed

6 files changed

+19
-15
lines changed

packages/router/src/Exceptions/NoMatchedRoute.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ public function __construct()
1010
{
1111
parent::__construct('No matched route was registered in the container. Did you remove `\Tempest\Router\MatchRouteMiddleware` from the middleware stack by any chance?');
1212
}
13-
}
13+
}

packages/router/src/HandleRouteExceptionMiddleware.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,32 @@
33
namespace Tempest\Router;
44

55
use Tempest\Core\Priority;
6-
use Tempest\Http\HttpException;
76
use Tempest\Http\Request;
87
use Tempest\Http\Response;
98
use Tempest\Http\Responses\Invalid;
109
use Tempest\Http\Responses\NotFound;
1110
use Tempest\Router\Exceptions\NotFoundException;
1211
use Tempest\Validation\Exceptions\ValidationException;
1312

14-
#[Priority(Priority::FRAMEWORK - 9)]
15-
final class HandleRouteExceptionMiddleware implements HttpMiddleware
13+
#[Priority(Priority::FRAMEWORK - 10)]
14+
final readonly class HandleRouteExceptionMiddleware implements HttpMiddleware
1615
{
16+
public function __construct(
17+
private RouteConfig $routeConfig,
18+
) {}
19+
1720
public function __invoke(Request $request, HttpMiddlewareCallable $next): Response
1821
{
22+
if ($this->routeConfig->throwHttpExceptions === true) {
23+
return $next($request);
24+
}
25+
1926
try {
2027
return $next($request);
2128
} catch (NotFoundException) {
2229
return new NotFound();
2330
} catch (ValidationException $validationException) {
2431
return new Invalid($validationException->subject, $validationException->failingRules);
25-
// } catch(HttpException $httpException) {
26-
// TODO?
2732
}
2833
}
29-
}
34+
}

packages/router/src/HandleRouteSpecificMiddleware.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ public function __invoke(Request $request, HttpMiddlewareCallable $next): Respon
3333

3434
return $callable($request);
3535
}
36-
}
36+
}

packages/router/src/MatchRouteMiddleware.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@
66
use Tempest\Container\Container;
77
use Tempest\Core\Priority;
88
use Tempest\Http\GenericRequest;
9-
use Tempest\Http\Mappers\PsrRequestToGenericRequestMapper;
109
use Tempest\Http\Mappers\RequestToObjectMapper;
11-
use Tempest\Http\Mappers\RequestToPsrRequestMapper;
1210
use Tempest\Http\Request;
1311
use Tempest\Http\Response;
1412
use Tempest\Http\Responses\NotFound;
1513
use Tempest\Router\Routing\Matching\RouteMatcher;
14+
1615
use function Tempest\map;
1716

18-
#[Priority(Priority::FRAMEWORK - 10)]
19-
final readonly class MatchRouteMiddleware implements HttpMiddleware
17+
#[Priority(Priority::FRAMEWORK - 9)]
18+
final readonly class MatchRouteMiddleware implements HttpMiddleware
2019
{
2120
public function __construct(
2221
private RouteMatcher $routeMatcher,
@@ -68,4 +67,4 @@ private function resolveRequest(Request $request, MatchedRoute $matchedRoute): R
6867

6968
return $request;
7069
}
71-
}
70+
}

packages/router/src/RouteConfig.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ public function __construct(
2323

2424
/** @var Middleware<\Tempest\Router\HttpMiddleware> */
2525
public Middleware $middleware = new Middleware(
26-
MatchRouteMiddleware::class,
2726
HandleRouteExceptionMiddleware::class,
27+
MatchRouteMiddleware::class,
2828
SetCookieMiddleware::class,
2929
HandleRouteSpecificMiddleware::class,
3030
),

tests/Integration/Route/NotFoundTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ public function test_unmatched_route_returns_not_found(): void
1010
{
1111
$this->http->get('unknown-route')->assertNotFound();
1212
}
13-
}
13+
}

0 commit comments

Comments
 (0)