From f76a2a69f7d9f3260fcdbcaf566df99129141f67 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sat, 21 Nov 2020 17:03:24 +0000 Subject: [PATCH] Cleaned up api docs implementation, added missing titles --- app/Api/ApiDocsGenerator.php | 23 +++++++++++++-- .../Controllers/Api/ApiDocsController.php | 28 ++++--------------- app/Http/Controllers/RecycleBinController.php | 1 + 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/app/Api/ApiDocsGenerator.php b/app/Api/ApiDocsGenerator.php index ddba24bdb..2953647bb 100644 --- a/app/Api/ApiDocsGenerator.php +++ b/app/Api/ApiDocsGenerator.php @@ -1,7 +1,9 @@ generate(); + Cache::put($cacheKey, $docs, 60 * 24); + } + return $docs; + } + /** * Generate API documentation. */ - public function generate(): Collection + protected function generate(): Collection { $apiRoutes = $this->getFlatApiRoutes(); $apiRoutes = $this->loadDetailsFromControllers($apiRoutes); @@ -58,7 +77,7 @@ class ApiDocsGenerator /** * Load body params and their rules by inspecting the given class and method name. - * @throws \Illuminate\Contracts\Container\BindingResolutionException + * @throws BindingResolutionException */ protected function getBodyParamsFromClass(string $className, string $methodName): ?array { diff --git a/app/Http/Controllers/Api/ApiDocsController.php b/app/Http/Controllers/Api/ApiDocsController.php index 84ddd5215..80e86e101 100644 --- a/app/Http/Controllers/Api/ApiDocsController.php +++ b/app/Http/Controllers/Api/ApiDocsController.php @@ -1,8 +1,6 @@ getDocs(); + $docs = ApiDocsGenerator::generateConsideringCache(); + $this->setPageTitle(trans('settings.users_api_tokens_docs')); return view('api-docs.index', [ 'docs' => $docs, ]); @@ -21,27 +20,10 @@ class ApiDocsController extends ApiController /** * Show a JSON view of the API docs data. */ - public function json() { - $docs = $this->getDocs(); + public function json() + { + $docs = ApiDocsGenerator::generateConsideringCache(); return response()->json($docs); } - /** - * Get the base docs data. - * Checks and uses the system cache for quick re-fetching. - */ - protected function getDocs(): Collection - { - $appVersion = trim(file_get_contents(base_path('version'))); - $cacheKey = 'api-docs::' . $appVersion; - if (Cache::has($cacheKey) && config('app.env') === 'production') { - $docs = Cache::get($cacheKey); - } else { - $docs = (new ApiDocsGenerator())->generate(); - Cache::put($cacheKey, $docs, 60*24); - } - - return $docs; - } - } diff --git a/app/Http/Controllers/RecycleBinController.php b/app/Http/Controllers/RecycleBinController.php index 928310779..22c1a0f7e 100644 --- a/app/Http/Controllers/RecycleBinController.php +++ b/app/Http/Controllers/RecycleBinController.php @@ -31,6 +31,7 @@ class RecycleBinController extends Controller { $deletions = Deletion::query()->with(['deletable', 'deleter'])->paginate(10); + $this->setPageTitle(trans('settings.recycle_bin')); return view('settings.recycle-bin.index', [ 'deletions' => $deletions, ]);