Browse Source

Added support for Laravel < 5.2

Marcel Pociot 9 years ago
parent
commit
6e7c50fa4f

+ 9 - 3
src/Mpociot/ApiDoc/Commands/GenerateDocumentation.php

@@ -62,9 +62,15 @@ class GenerateDocumentation extends Command
         }
 
         if ($actAs !== null) {
-            $userModel = config('auth.providers.users.model');
-            $user = $userModel::find($actAs);
-            $this->laravel['auth']->guard()->setUser($user);
+            if (version_compare($this->laravel->version(),'5.2.0', '<')) {
+                $userModel = config('auth.model');
+                $user = $userModel::find($actAs);
+                $this->laravel['auth']->setUser($user);
+            } else {
+                $userModel = config('auth.providers.users.model');
+                $user = $userModel::find($actAs);
+                $this->laravel['auth']->guard()->setUser($user);
+            }
         }
 
         $routes = Route::getRoutes();

+ 31 - 0
tests/ApiDocGeneratorTest.php

@@ -1,5 +1,6 @@
 <?php
 
+use Illuminate\Foundation\Http\FormRequest;
 use Illuminate\Routing\Controller;
 use Illuminate\Routing\Route;
 use Mpociot\ApiDoc\ApiDocGenerator;
@@ -55,6 +56,21 @@ class ApiDocGeneratorTest extends Orchestra\Testbench\TestCase
         $this->assertEquals(['DELETE'], $parsed['methods']);
     }
 
+    public function testCanParseFormRequestRules()
+    {
+        \Illuminate\Support\Facades\Route::post('/post', 'TestController@parseFormRequestRules');
+        $route = new Route(['POST'], '/post', ['uses' => 'TestController@parseFormRequestRules']);
+        $parsed = $this->generator->processRoute($route);
+        $parameters = $parsed['parameters'];
+        $this->assertArrayHasKey('required_attribute', $parameters);
+
+        $required_attribute = $parameters['required_attribute'];
+
+        $this->assertTrue( $required_attribute['required'] );
+        $this->assertEquals( 'string', $required_attribute['type'] );
+        $this->assertCount( 0, $required_attribute['description'] );
+    }
+
 }
 
 class TestController extends Controller
@@ -76,4 +92,19 @@ class TestController extends Controller
         return '';
     }
 
+    public function parseFormRequestRules(TestRequest $request)
+    {
+        return '';
+    }
+
+}
+
+class TestRequest extends FormRequest 
+{
+    public function rules()
+    {
+        return [
+            'required_attribute' => 'required'
+        ];
+    }
 }