update controllers logic
This commit is contained in:
Executable → Regular
+72
-15
@@ -1,21 +1,78 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Api\Auth\AuthSessionController;
|
||||
use App\Http\Controllers\Api\Auth\SessionTimeoutController;
|
||||
use App\Http\Controllers\Api\System\DashboardRedirectController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\View\DashboardRedirectController;
|
||||
use App\Services\Docs\OpenApiRouteExporter;
|
||||
|
||||
Route::redirect('/', '/api/docs')->name('docs.home');
|
||||
Route::view('/api/docs', 'docs.swagger')->name('docs.swagger');
|
||||
Route::get('/dashboard', [DashboardRedirectController::class, 'dashboard'])->name('dashboard.redirect');
|
||||
/*
|
||||
| Cookie session + browser-facing paths (SPA still calls same-origin /login, /logout, …).
|
||||
| All REST business logic lives under routes/api.php → /api, /api/v1.
|
||||
*/
|
||||
|
||||
Route::get('/api/documentation/swagger.json', function () {
|
||||
$path = resource_path('docs/openapi.json');
|
||||
abort_unless(is_file($path), 404);
|
||||
|
||||
$spec = app(OpenApiRouteExporter::class)->exportFromFile($path);
|
||||
|
||||
return response()->json($spec, 200, [
|
||||
'Content-Type' => 'application/json',
|
||||
'Cache-Control' => 'no-store, max-age=0',
|
||||
Route::get('/', function () {
|
||||
return response()->json([
|
||||
'status' => 'ok',
|
||||
'service' => config('app.name', 'api'),
|
||||
'docs' => url('/docs'),
|
||||
]);
|
||||
})->name('docs.swagger-json');
|
||||
})->name('api.home');
|
||||
|
||||
Route::get('docs', function () {
|
||||
$specUrl = url('/api/documentation/swagger.json');
|
||||
|
||||
$html = <<<HTML
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Alrahma API Docs</title>
|
||||
<link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5/swagger-ui.css">
|
||||
<style>
|
||||
body { margin: 0; background: #ffffff; }
|
||||
#swagger-ui { min-height: 100vh; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="swagger-ui"></div>
|
||||
<script src="https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js"></script>
|
||||
<script>
|
||||
window.addEventListener('load', function () {
|
||||
SwaggerUIBundle({
|
||||
url: "{$specUrl}",
|
||||
dom_id: '#swagger-ui',
|
||||
operationsSorter: 'alpha',
|
||||
tagsSorter: 'alpha',
|
||||
docExpansion: 'none',
|
||||
defaultModelsExpandDepth: -1,
|
||||
persistAuthorization: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
HTML;
|
||||
|
||||
return response($html, 200)->header('Content-Type', 'text/html; charset=UTF-8');
|
||||
})->name('docs.ui');
|
||||
|
||||
Route::middleware('web')->group(function () {
|
||||
Route::get('login', [AuthSessionController::class, 'loginMask'])->name('login');
|
||||
Route::post('user/login', [AuthSessionController::class, 'login'])->name('auth.session.login');
|
||||
Route::get('logout', [AuthSessionController::class, 'logout'])->name('auth.session.logout');
|
||||
Route::get('select-role', [AuthSessionController::class, 'selectRole'])->name('auth.session.select-role');
|
||||
Route::post('set-role', [AuthSessionController::class, 'setRole'])->name('auth.session.set-role');
|
||||
|
||||
Route::get('session/check-timeout', [SessionTimeoutController::class, 'checkTimeout'])
|
||||
->name('auth.session.check-timeout');
|
||||
Route::get('session/check', [SessionTimeoutController::class, 'checkTimeout'])
|
||||
->name('auth.session.check');
|
||||
Route::post('session/ping', [SessionTimeoutController::class, 'pingActivity'])
|
||||
->name('auth.session.ping');
|
||||
Route::get('session/timeout-config', [SessionTimeoutController::class, 'getTimeoutConfig'])
|
||||
->name('auth.session.timeout-config');
|
||||
|
||||
Route::middleware('auth')->get('dashboard', [DashboardRedirectController::class, 'dashboard'])
|
||||
->name('dashboard.redirect');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user