Skip to content

Commit 74dd9d5

Browse files
committed
Add check for route groups
Modify FormRequest detection to allow usage of the IoC container
1 parent 2453a8b commit 74dd9d5

File tree

5 files changed

+34
-3
lines changed

5 files changed

+34
-3
lines changed

src/Mpociot/ApiDoc/Commands/GenerateDocumentation.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ private function processDingoRoutes(AbstractGenerator $generator, $allowedRoutes
224224
*/
225225
private function isValidRoute($route)
226226
{
227-
return ! is_callable($route->getAction()['uses']);
227+
return ! is_callable($route->getAction()['uses']) && ! is_null($route->getAction()['uses']);
228228
}
229229

230230
/**

src/Mpociot/ApiDoc/Generators/AbstractGenerator.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ protected function getRouteRules($route, $bindings)
144144
if (! is_null($parameterType) && class_exists($parameterType->name)) {
145145
$className = $parameterType->name;
146146

147-
$parameterReflection = new $className;
148-
if ($parameterReflection instanceof FormRequest) {
147+
if (is_subclass_of($className,FormRequest::class)) {
148+
$parameterReflection = new $className;
149149
// Add route parameter bindings
150150
$parameterReflection->query->add($bindings);
151151
$parameterReflection->request->add($bindings);

tests/ApiDocGeneratorTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ public function testCanParseRouteMethods()
6868
$this->assertSame(['DELETE'], $parsed['methods']);
6969
}
7070

71+
public function testCanParseDependencyInjectionInControllerMethods()
72+
{
73+
RouteFacade::post('/post', TestController::class.'@dependencyInjection');
74+
$route = new Route(['POST'], '/post', ['uses' => TestController::class.'@dependencyInjection']);
75+
$parsed = $this->generator->processRoute($route);
76+
$this->assertTrue(is_array($parsed));
77+
}
78+
7179
public function testCanParseFormRequestRules()
7280
{
7381
RouteFacade::post('/post', TestController::class.'@parseFormRequestRules');
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Mpociot\ApiDoc\Tests\Fixtures;
4+
5+
use Illuminate\Contracts\Filesystem\Filesystem;
6+
7+
class DependencyInjection
8+
{
9+
/**
10+
* @var
11+
*/
12+
private $filesystem;
13+
14+
public function __construct(Filesystem $filesystem)
15+
{
16+
$this->filesystem = $filesystem;
17+
}
18+
}

tests/Fixtures/TestController.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,9 @@ public function fetchRouteResponse()
4848
'delicious' => (bool) $fixture->delicious,
4949
];
5050
}
51+
52+
public function dependencyInjection(DependencyInjection $dependency, TestRequest $request)
53+
{
54+
return '';
55+
}
5156
}

0 commit comments

Comments
 (0)