]> BookStack Code Mirror - bookstack/blobdiff - app/Api/ApiDocsGenerator.php
Install composer dependencies in Docker entrypoint
[bookstack] / app / Api / ApiDocsGenerator.php
index b63406696ea21a56fa75fc3c06945bb1fd0f5719..ddba24bdb65d6ec8dc1474e3d50996c546623228 100644 (file)
@@ -3,6 +3,7 @@
 use BookStack\Http\Controllers\Api\ApiController;
 use Illuminate\Support\Collection;
 use Illuminate\Support\Facades\Route;
+use Illuminate\Support\Str;
 use ReflectionClass;
 use ReflectionException;
 use ReflectionMethod;
@@ -31,9 +32,12 @@ class ApiDocsGenerator
     protected function loadDetailsFromFiles(Collection $routes): Collection
     {
         return $routes->map(function (array $route) {
-            $exampleResponseFile = base_path('dev/api/responses/' . $route['name'] . '.json');
-            $exampleResponse = file_exists($exampleResponseFile) ? file_get_contents($exampleResponseFile) : null;
-            $route['example_response'] = $exampleResponse;
+            $exampleTypes = ['request', 'response'];
+            foreach ($exampleTypes as $exampleType) {
+                $exampleFile = base_path("dev/api/{$exampleType}s/{$route['name']}.json");
+                $exampleContent = file_exists($exampleFile) ? file_get_contents($exampleFile) : null;
+                $route["example_{$exampleType}"] = $exampleContent;
+            }
             return $route;
         });
     }
@@ -106,7 +110,7 @@ class ApiDocsGenerator
             return strpos($route->uri, 'api/') === 0;
         })->map(function ($route) {
             [$controller, $controllerMethod] = explode('@', $route->action['uses']);
-            $baseModelName = explode('/', $route->uri)[1];
+            $baseModelName = explode('.', explode('/', $route->uri)[1])[0];
             $shortName = $baseModelName . '-' . $controllerMethod;
             return [
                 'name' => $shortName,
@@ -114,6 +118,7 @@ class ApiDocsGenerator
                 'method' => $route->methods[0],
                 'controller' => $controller,
                 'controller_method' => $controllerMethod,
+                'controller_method_kebab' => Str::kebab($controllerMethod),
                 'base_model' => $baseModelName,
             ];
         });