From 7f7e682f57425319bfe54baf3239fd7b642f51f1 Mon Sep 17 00:00:00 2001 From: Corentin Lux Date: Tue, 15 Mar 2022 14:51:33 +0100 Subject: [PATCH 1/2] Router > resources() > Generate PATCH /resource/:id/field/:field route --- Pragma/Router/Router.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Pragma/Router/Router.php b/Pragma/Router/Router.php index 8fb6403..1eae2ad 100644 --- a/Pragma/Router/Router.php +++ b/Pragma/Router/Router.php @@ -324,6 +324,15 @@ public function resources($pattern, $controller = null, $callback = [], $ctrl_bu } call_user_func_array([is_object($controller) ? $controller : new $controller(), 'delete'], $route->getValues()); })->alias("$prefix-delete"); + + $this->patch("/:$pname/field/:field", function($id, $field) use($controller, $ctrl_builder) { + $route = $this->getCurrentRoute(); + $controller = ! is_null($controller) ? $controller : ( is_callable($ctrl_builder) ? call_user_func_array($ctrl_builder, $route->getValues()) : null ); + if( ! is_null($controller) && ! method_exists($controller, 'toggle') ) { + Router::halt(404, 'Resource not found'); + } + call_user_func_array([is_object($controller) ? $controller : new $controller(), 'toggle'], $route->getValues()); + })->alias("$prefix-toggle"); }); } From 74bf053c83f2ec86d030c7d4effdb838d5c8ce9a Mon Sep 17 00:00:00 2001 From: Corentin Lux Date: Wed, 16 Mar 2022 14:28:53 +0100 Subject: [PATCH 2/2] toggle() renamed as patch() --- Pragma/Router/Router.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Pragma/Router/Router.php b/Pragma/Router/Router.php index 1eae2ad..ba03722 100644 --- a/Pragma/Router/Router.php +++ b/Pragma/Router/Router.php @@ -328,11 +328,11 @@ public function resources($pattern, $controller = null, $callback = [], $ctrl_bu $this->patch("/:$pname/field/:field", function($id, $field) use($controller, $ctrl_builder) { $route = $this->getCurrentRoute(); $controller = ! is_null($controller) ? $controller : ( is_callable($ctrl_builder) ? call_user_func_array($ctrl_builder, $route->getValues()) : null ); - if( ! is_null($controller) && ! method_exists($controller, 'toggle') ) { + if( ! is_null($controller) && ! method_exists($controller, 'patch') ) { Router::halt(404, 'Resource not found'); } - call_user_func_array([is_object($controller) ? $controller : new $controller(), 'toggle'], $route->getValues()); - })->alias("$prefix-toggle"); + call_user_func_array([is_object($controller) ? $controller : new $controller(), 'patch'], $route->getValues()); + })->alias("$prefix-patch"); }); }