mirror of
https://github.com/ambieco/scribe.git
synced 2026-04-24 10:44:55 +08:00
Added useMiddlewares option - Fixes #112
This commit is contained in:
@@ -46,6 +46,7 @@ Option | Description
|
||||
`middleware` | The middlewares to use for generation
|
||||
`noResponseCalls` | Disable API response calls
|
||||
`noPostmanCollection` | Disable Postman collection creation
|
||||
`useMiddlewares` | Use all configured route middlewares (Needed for Laravel 5.3 `SubstituteBindings` middleware)
|
||||
`actAsUserId` | The user ID to use for authenticated API response calls
|
||||
`router` | The router to use, when processing the route files (can be Laravel or Dingo - defaults to Laravel)
|
||||
`bindings` | List of route bindings that should be replaced when trying to retrieve route results. Syntax format: `binding_one,id|binding_two,id`
|
||||
|
||||
@@ -27,6 +27,7 @@ class GenerateDocumentation extends Command
|
||||
{--middleware= : The middleware to use for generation}
|
||||
{--noResponseCalls : Disable API response calls}
|
||||
{--noPostmanCollection : Disable Postman collection creation}
|
||||
{--useMiddlewares : Use all configured route middlewares}
|
||||
{--actAsUserId= : The user ID to use for API response calls}
|
||||
{--router=laravel : The router to be used (Laravel or Dingo)}
|
||||
{--force : Force rewriting of existing routes}
|
||||
@@ -76,6 +77,8 @@ class GenerateDocumentation extends Command
|
||||
return false;
|
||||
}
|
||||
|
||||
$generator->prepareMiddleware($this->option('useMiddlewares'));
|
||||
|
||||
if ($this->option('router') === 'laravel') {
|
||||
$parsedRoutes = $this->processLaravelRoutes($generator, $allowedRoutes, $routePrefix, $middleware);
|
||||
} else {
|
||||
|
||||
@@ -29,6 +29,15 @@ abstract class AbstractGenerator
|
||||
*/
|
||||
abstract public function processRoute($route, $bindings = [], $withResponse = true);
|
||||
|
||||
/**
|
||||
* Prepares / Disables route middlewares
|
||||
*
|
||||
* @param boolean $disable
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
abstract public function prepareMiddleware($disable = false);
|
||||
|
||||
/**
|
||||
* @param array $routeData
|
||||
* @param array $routeAction
|
||||
@@ -78,7 +87,7 @@ abstract class AbstractGenerator
|
||||
|
||||
//Changes url with parameters like /users/{user} to /users/1
|
||||
$uri = preg_replace('/{(.*)}/', 1, $uri);
|
||||
|
||||
|
||||
return $this->callRoute(array_shift($methods), $uri, [], [], [], $headers);
|
||||
}
|
||||
|
||||
|
||||
@@ -41,6 +41,19 @@ class DingoGenerator extends AbstractGenerator
|
||||
], $routeAction, $bindings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares / Disables route middlewares
|
||||
*
|
||||
* @param boolean $disable
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function prepareMiddleware($disable = true)
|
||||
{
|
||||
// Not needed by Dingo
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
||||
@@ -56,6 +56,18 @@ class LaravelGenerator extends AbstractGenerator
|
||||
], $routeAction, $bindings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares / Disables route middlewares
|
||||
*
|
||||
* @param boolean $disable
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function prepareMiddleware($disable = true)
|
||||
{
|
||||
App::instance('middleware.disable', true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Call the given URI and return the Response.
|
||||
*
|
||||
@@ -71,9 +83,6 @@ class LaravelGenerator extends AbstractGenerator
|
||||
*/
|
||||
public function callRoute($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)
|
||||
{
|
||||
$kernel = App::make('Illuminate\Contracts\Http\Kernel');
|
||||
App::instance('middleware.disable', true);
|
||||
|
||||
$server = collect([
|
||||
'CONTENT_TYPE' => 'application/json',
|
||||
'Accept' => 'application/json',
|
||||
@@ -84,6 +93,7 @@ class LaravelGenerator extends AbstractGenerator
|
||||
$cookies, $files, $this->transformHeadersToServerVars($server), $content
|
||||
);
|
||||
|
||||
$kernel = App::make('Illuminate\Contracts\Http\Kernel');
|
||||
$response = $kernel->handle($request);
|
||||
|
||||
$kernel->terminate($request, $response);
|
||||
|
||||
Reference in New Issue
Block a user