@@ -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
30423073class 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