123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
-
- namespace Luticate\Utils;
-
- class LuRoute {
- /**
- * @var string[]
- */
- private $middleware = array();
-
- /**
- * @param $middleware string
- */
- public function addMiddleware($middleware)
- {
- $this->middleware[] = $middleware;
- }
-
- private function getOptions($url, $business, $method, $permissions, $middleware)
- {
- if (!is_array($permissions)) {
- $permissions = array($permissions);
- }
- if (!is_array($middleware)) {
- $middleware = array($middleware);
- }
- $permissions_string = implode(",", $permissions);
- $middleware_string = [];
- foreach (array_merge($this->middleware, $middleware) as $mid) {
-
- $middleware_string[] = $mid . (strpos($mid, ":") !== false ? "," : ":") . $permissions_string;
- }
- return [function() use($business, $method, $permissions)
- {
- $controller = new LuController();
-
- if (strpos($business, "\\") === false) {
- $business = "App\\Http\\Business\\" . $business . "Business";
- }
-
- return $controller->execute($business, $method);
- },
- 'middleware' => $middleware_string];
- }
-
- /**
- * @param $url string
- * @param $business string
- * @param $method string
- * @param array $permissions string|string[]
- * @param array $middleware string|string[]
- * @return mixed
- */
- public function get($url, $business, $method, $permissions = array(), $middleware = array())
- {
- global $app;
- return $app->get($url, $this->getOptions($url, $business, $method, $permissions, $middleware));
- }
-
- /**
- * @param $url string
- * @param $business string
- * @param $method string
- * @param array $permissions string|string[]
- * @param array $middleware string|string[]
- * @return mixed
- */
- public function post($url, $business, $method, $permissions = array(), $middleware = array())
- {
- global $app;
- return $app->post($url, $this->getOptions($url, $business, $method, $permissions, $middleware));
- }
-
- /**
- * @param $url string
- * @param $business string
- * @param $method string
- * @param array $permissions string|string[]
- * @param array $middleware string|string[]
- * @return mixed
- */
- public function put($url, $business, $method, $permissions = array(), $middleware = array())
- {
- global $app;
- return $app->put($url, $this->getOptions($url, $business, $method, $permissions, $middleware));
- }
-
- /**
- * @param $url string
- * @param $business string
- * @param $method string
- * @param array $permissions string|string[]
- * @param array $middleware string|string[]
- * @return mixed
- */
- public function delete($url, $business, $method, $permissions = array(), $middleware = array())
- {
- global $app;
- return $app->delete($url, $this->getOptions($url, $business, $method, $permissions, $middleware));
- }
- }
|