Skip to content

Commit 32db057

Browse files
committed
Fixes #443
1 parent 56b5d16 commit 32db057

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

api.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3037,6 +3037,37 @@ public function handle(Request $request): Response
30373037
}
30383038
}
30393039

3040+
// file: src/Tqdev/PhpCrudApi/Middleware/CustomMiddleware.php
3041+
3042+
class CustomMiddleware extends Middleware
3043+
{
3044+
private $reflection;
3045+
3046+
public function __construct(Router $router, Responder $responder, array $properties, ReflectionService $reflection)
3047+
{
3048+
parent::__construct($router, $responder, $properties);
3049+
$this->reflection = $reflection;
3050+
$this->utils = new RequestUtils($reflection);
3051+
}
3052+
3053+
public function handle(Request $request): Response
3054+
{
3055+
$operation = $this->utils->getOperation($request);
3056+
$tableName = $request->getPathSegment(2);
3057+
$beforeHandler = $this->getProperty('beforeHandler', '');
3058+
$environment = (object) array();
3059+
if ($beforeHandler !== '') {
3060+
call_user_func($beforeHandler, $operation, $tableName, $request, $environment);
3061+
}
3062+
$response = $this->next->handle($request);
3063+
$afterHandler = $this->getProperty('afterHandler', '');
3064+
if ($afterHandler !== '') {
3065+
call_user_func($afterHandler, $operation, $tableName, $response, $environment);
3066+
}
3067+
return $response;
3068+
}
3069+
}
3070+
30403071
// file: src/Tqdev/PhpCrudApi/Middleware/FirewallMiddleware.php
30413072

30423073
class FirewallMiddleware extends Middleware
@@ -4796,6 +4827,9 @@ public function __construct(Config $config)
47964827
case 'authorization':
47974828
new AuthorizationMiddleware($router, $responder, $properties, $reflection);
47984829
break;
4830+
case 'custom':
4831+
new CustomMiddleware($router, $responder, $properties, $reflection);
4832+
break;
47994833
}
48004834
}
48014835
foreach ($config->getControllers() as $controller) {

0 commit comments

Comments
 (0)