Skip to content

Commit 05cd696

Browse files
committed
2 parents 7b9c14a + 8f17b89 commit 05cd696

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

src/Middleware/TransactionMiddleware.php

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Express\Core\Application;
66
use Express\Http\Request;
77
use Express\Http\Response;
8+
use CAFernandes\ExpressPHP\CycleORM\Http\CycleRequest;
89

910
class TransactionMiddleware
1011
{
@@ -18,9 +19,9 @@ public function __construct(Application $app)
1819
/**
1920
* Compatível com padrão callable do Express-PHP.
2021
*
21-
* @param callable(Request, Response):void $next função next do Express-PHP, recebe Request e Response
22+
* @param callable($req, Response):void $next função next do Express-PHP, recebe Request e Response
2223
*/
23-
public function __invoke(Request $req, Response $res, callable $next): void
24+
public function __invoke($req, Response $res, callable $next): void
2425
{
2526
$this->handle($req, $res, $next);
2627
}
@@ -30,7 +31,7 @@ public function __invoke(Request $req, Response $res, callable $next): void
3031
*
3132
* @param callable(Request, Response):void $next função next do Express-PHP, recebe Request e Response
3233
*/
33-
public function handle(Request $req, Response $res, callable $next): void
34+
public function handle(Request|CycleRequest $req, Response $res, callable $next): void
3435
{
3536
// Use sempre o container PSR-11 para buscar serviços
3637
if (method_exists($this->app, 'getContainer')) {
@@ -54,7 +55,13 @@ public function handle(Request $req, Response $res, callable $next): void
5455
$transactionStarted = true;
5556
$this->logDebug('Transaction started for route: ' . $this->getRouteInfo($req));
5657

57-
$next($req, $res);
58+
// If we have a CycleRequest, pass the original request to the next middleware
59+
// to ensure compatibility with the route handler
60+
if ($req instanceof CycleRequest) {
61+
$next($req->getOriginalRequest(), $res);
62+
} else {
63+
$next($req, $res);
64+
}
5865

5966
// Commit apenas se há mudanças
6067
if (is_object($em) && method_exists($em, 'commitTransaction')) {
@@ -78,7 +85,7 @@ public function handle(Request $req, Response $res, callable $next): void
7885
}
7986
}
8087

81-
private function getRouteInfo(Request $req): string
88+
private function getRouteInfo(Request|CycleRequest $req): string
8289
{
8390
$method = property_exists($req, 'method')
8491
&& (is_string($req->method) || is_numeric($req->method))

0 commit comments

Comments
 (0)