public function handle()
{
if ($this->option('router') === 'laravel') {
$generator = new LaravelGenerator();
} else {
$generator = new DingoGenerator();
}
$allowedRoutes = $this->option('routes');
$routePrefix = $this->option('routePrefix');
$middleware = $this->option('middleware');
$this->setUserToBeImpersonated($this->option('actAsUserId'));
if ($routePrefix === null && !count($allowedRoutes) && $middleware === null) {
$this->error('You must provide either a route prefix or a route or a middleware to generate the documentation.');
return false;
}
$generator->prepareMiddleware($this->option('useMiddlewares'));
if ($this->option('router') === 'laravel') {
$parsedRoutes = $this->processLaravelRoutes($generator, $allowedRoutes, $routePrefix, $middleware);
} else {
$parsedRoutes = $this->processDingoRoutes($generator, $allowedRoutes, $routePrefix, $middleware);
}
$parsedRoutes = collect($parsedRoutes)->groupBy('resource')->sort(function ($a, $b) {
return strcmp($a->first()['resource'], $b->first()['resource']);
});
$this->writeMarkdown($parsedRoutes);
}