add log controller

This commit is contained in:
2023-02-03 09:39:37 +10:00
parent d60383211c
commit 4ec4b5b10b
2 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
class LogController extends ApiController
{
/**
* ApplicationController constructor.
*/
public function __construct()
{
$this->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();
}
}

View File

@@ -42,6 +42,7 @@ Route::delete('subscriptions', [SubscriptionController::class, 'destroyByEmail']
Route::post('/contact', [ContactController::class, 'send']); Route::post('/contact', [ContactController::class, 'send']);
Route::get('/logs/{name}', [LogController::class, 'show']);
Route::middleware('auth:sanctum')->group(function () { Route::middleware('auth:sanctum')->group(function () {
Route::post('/logout', [AuthController::class, 'logout']); Route::post('/logout', [AuthController::class, 'logout']);