Skip to content

Commit f7f8407

Browse files
committed
Fixed Dingo part of issue #30
1 parent 3f0b81a commit f7f8407

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

src/Mpociot/ApiDoc/Commands/GenerateDocumentation.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,12 @@ private function processDingoRoutes(AbstractGenerator $generator, $allowedRoutes
280280
$parsedRoutes = [];
281281
foreach ($routes as $route) {
282282
if (empty($allowedRoutes) || in_array($route->getName(), $allowedRoutes) || str_is($routePrefix, $route->uri()) || in_array($middleware, $route->middleware())) {
283-
$parsedRoutes[] = $generator->processRoute($route, $bindings, $this->option('header'), $withResponse);
284-
$this->info('Processed route: ['.implode(',', $route->getMethods()).'] '.$route->uri());
283+
if ($this->isValidRoute($route) && $this->isRouteVisibleForDocumentation($route->getAction()['uses'])) {
284+
$parsedRoutes[] = $generator->processRoute($route, $bindings, $this->option('header'), $withResponse);
285+
$this->info('Processed route: [' . implode(',', $route->getMethods()) . '] ' . $route->uri());
286+
} else {
287+
$this->warn('Skipping route: ['.implode(',', $route->getMethods()).'] '.$route->uri());
288+
}
285289
}
286290
}
287291

tests/GenerateDocumentationTest.php

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
namespace Mpociot\ApiDoc\Tests;
44

5+
use Dingo\Api\Provider\LaravelServiceProvider;
56
use Illuminate\Contracts\Console\Kernel;
67
use Illuminate\Routing\Route;
78
use Mpociot\ApiDoc\ApiDocGeneratorServiceProvider;
89
use Mpociot\ApiDoc\Generators\LaravelGenerator;
10+
use Mpociot\ApiDoc\Tests\Fixtures\DingoTestController;
911
use Orchestra\Testbench\TestCase;
1012
use Mpociot\ApiDoc\Tests\Fixtures\TestController;
1113
use Illuminate\Support\Facades\Route as RouteFacade;
@@ -39,7 +41,10 @@ public function tearDown()
3941
*/
4042
protected function getPackageProviders($app)
4143
{
42-
return [ApiDocGeneratorServiceProvider::class];
44+
return [
45+
LaravelServiceProvider::class,
46+
ApiDocGeneratorServiceProvider::class
47+
];
4348
}
4449

4550
public function testConsoleCommandNeedsAPrefixOrRoute()
@@ -62,6 +67,24 @@ public function testConsoleCommandDoesNotWorkWithClosure()
6267
$this->assertContains('Processed route: [GET,HEAD] api/test', $output);
6368
}
6469

70+
public function testConsoleCommandDoesNotWorkWithClosureUsingDingo()
71+
{
72+
$api = app('Dingo\Api\Routing\Router');
73+
$api->version('v1', function ($api) {
74+
$api->get('/closure', function () {
75+
return 'foo';
76+
});
77+
$api->get('/test', DingoTestController::class.'@parseMethodDescription');
78+
79+
$output = $this->artisan('api:generate', [
80+
'--router' => 'dingo',
81+
'--routePrefix' => 'v1',
82+
]);
83+
$this->assertContains('Skipping route: [GET,HEAD] closure', $output);
84+
$this->assertContains('Processed route: [GET,HEAD] test', $output);
85+
});
86+
}
87+
6588
public function testCanSkipSingleRoutesCommandDoesNotWorkWithClosure()
6689
{
6790
RouteFacade::get('/api/skip', TestController::class.'@skip');

0 commit comments

Comments
 (0)