From 4ec4b5b10b56dbb05bcfaf29ae2ef9752817b621 Mon Sep 17 00:00:00 2001 From: James Collins Date: Fri, 3 Feb 2023 09:39:37 +1000 Subject: [PATCH] add log controller --- app/Http/Controllers/Api/LogController.php | 41 ++++++++++++++++++++++ routes/api.php | 1 + 2 files changed, 42 insertions(+) create mode 100644 app/Http/Controllers/Api/LogController.php diff --git a/app/Http/Controllers/Api/LogController.php b/app/Http/Controllers/Api/LogController.php new file mode 100644 index 0000000..5b046cb --- /dev/null +++ b/app/Http/Controllers/Api/LogController.php @@ -0,0 +1,41 @@ +middleware('auth:sanctum') + ->only(['show']); + } + + /** + * Display the specified resource. + * + * @param Request $request The log request. + * @return \Illuminate\Http\Response + */ + public function show(Request $request) + { + if($request->has('name') && $request->user()?->hasPermission('logs/' . $request->get('name'))) { + switch(strtolower($request->has('name'))) { + case 'discord': + $contents = ''; + $filePath = '/opt/discordbot/discordbot.log'; + if(file_exists($filePath) === true) { + $contents = file_get_contents($filePath); + } + + return $this->respondJson(['log' => $contents]); + } + } + + return $this->respondForbidden(); + } +} diff --git a/routes/api.php b/routes/api.php index 164a20f..acfe81f 100644 --- a/routes/api.php +++ b/routes/api.php @@ -42,6 +42,7 @@ Route::delete('subscriptions', [SubscriptionController::class, 'destroyByEmail'] Route::post('/contact', [ContactController::class, 'send']); +Route::get('/logs/{name}', [LogController::class, 'show']); Route::middleware('auth:sanctum')->group(function () { Route::post('/logout', [AuthController::class, 'logout']);