File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed
Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change 77use Api \App \Middleware \AuthorizationMiddleware ;
88use Api \App \Middleware \ContentNegotiationMiddleware ;
99use Api \App \Middleware \DeprecationMiddleware ;
10+ use Api \App \Middleware \MalformedRequestBodyMiddleware ;
1011use Api \App \Middleware \ResourceProviderMiddleware ;
1112use Dot \ResponseHeader \Middleware \ResponseHeaderMiddleware ;
1213use Mezzio \Application ;
2829 // - return ProblemDetails response
2930 $ app ->pipe (ProblemDetailsMiddleware::class);
3031
32+ $ app ->pipe (MalformedRequestBodyMiddleware::class);
3133 $ app ->pipe (BodyParamsMiddleware::class);
3234 $ app ->pipe (ServerUrlMiddleware::class);
3335 $ app ->pipe (CorsMiddleware::class);
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Api \App \Middleware ;
6+
7+ use Api \App \Exception \BadRequestException ;
8+ use Api \App \Exception \RuntimeException ;
9+ use Mezzio \Helper \Exception \MalformedRequestBodyException ;
10+ use Psr \Http \Message \ResponseInterface ;
11+ use Psr \Http \Message \ServerRequestInterface ;
12+ use Psr \Http \Server \MiddlewareInterface ;
13+ use Psr \Http \Server \RequestHandlerInterface ;
14+
15+ readonly class MalformedRequestBodyMiddleware implements MiddlewareInterface
16+ {
17+ /**
18+ * @throws BadRequestException
19+ * @throws RuntimeException
20+ */
21+ public function process (ServerRequestInterface $ request , RequestHandlerInterface $ handler ): ResponseInterface
22+ {
23+ try {
24+ return $ handler ->handle ($ request );
25+ } catch (MalformedRequestBodyException $ exception ) {
26+ throw BadRequestException::create (
27+ $ exception ->getMessage () ?: 'Error when parsing JSON request body: Syntax error '
28+ );
29+ }
30+ }
31+ }
You can’t perform that action at this time.
0 commit comments