123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
-
- namespace Luticate\Utils;
-
- use Illuminate\Http\Request;
-
- class LuRoute {
- /**
- * @var callable
- */
- private $_middleware;
-
- /**
- * @param $middleware callable
- */
- public function setMiddleware($middleware)
- {
- $this->_middleware = $middleware;
- }
-
- private function getOptions($url, $business, $method, $permissions = array())
- {
- $middleware = $this->_middleware;
- return [function(Request $request) use($business, $method, $permissions, $middleware)
- {
- if (!is_array($permissions)) {
- $permissions = array($permissions);
- }
-
- if ($middleware != null && !$middleware($permissions, $request)) {
- abort(401);
- }
-
- $controller = new LuController();
-
- if (strpos($business, "\\") === false)
- $business = "App\\Http\\Business\\" . $business . "Business";
-
- return $controller->execute($business, $method);
- }];
- }
-
- public function get($url, $business, $method, $permissions = array())
- {
- global $app;
- return $app->get($url, $this->getOptions($url, $business, $method, $permissions));
- }
-
- public function post($url, $business, $method, $permissions = array())
- {
- global $app;
- return $app->post($url, $this->getOptions($url, $business, $method, $permissions));
- }
-
- public function put($url, $business, $method, $permissions = array())
- {
- global $app;
- return $app->put($url, $this->getOptions($url, $business, $method, $permissions));
- }
-
- public function delete($url, $business, $method, $permissions = array())
- {
- global $app;
- return $app->delete($url, $this->getOptions($url, $business, $method, $permissions));
- }
- }
|