_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)); } }