2026-06-23 10:01:53 +00:00
|
|
|
<?php
|
|
|
|
|
|
2026-06-23 10:10:28 +00:00
|
|
|
use App\Modules\Client\Controllers\ClientController;
|
|
|
|
|
use App\Modules\History\Controllers\HistoryController;
|
|
|
|
|
use App\Modules\Search\Controllers\SearchController;
|
2026-06-23 10:01:53 +00:00
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
|
|
|
|
|
|
Route::post('/login', function (Request $request) {
|
|
|
|
|
$credentials = $request->validate([
|
|
|
|
|
'email' => ['required', 'email'],
|
|
|
|
|
'password' => ['required'],
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if (! auth()->attempt($credentials)) {
|
|
|
|
|
return response()->json(['message' => 'Invalid credentials'], 401);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($request->hasSession()) {
|
|
|
|
|
$request->session()->regenerate();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return response()->json(['data' => auth()->user()]);
|
|
|
|
|
});
|
|
|
|
|
|
2026-06-23 10:10:28 +00:00
|
|
|
Route::middleware('auth:sanctum')->group(function () {
|
|
|
|
|
Route::post('/logout', function (Request $request) {
|
|
|
|
|
auth()->logout();
|
|
|
|
|
if ($request->hasSession()) {
|
|
|
|
|
$request->session()->invalidate();
|
|
|
|
|
$request->session()->regenerateToken();
|
|
|
|
|
}
|
|
|
|
|
return response()->json(null, 204);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
Route::get('/user', fn (Request $request) => response()->json(['data' => $request->user()]));
|
2026-06-23 10:01:53 +00:00
|
|
|
|
2026-06-23 10:10:28 +00:00
|
|
|
Route::get('search', SearchController::class);
|
2026-06-23 10:01:53 +00:00
|
|
|
|
2026-06-23 10:10:28 +00:00
|
|
|
Route::apiResource('clients', ClientController::class)->except(['destroy']);
|
|
|
|
|
|
|
|
|
|
Route::get('clients/{client}/history', [HistoryController::class, 'index']);
|
|
|
|
|
Route::post('clients/{client}/history', [HistoryController::class, 'store']);
|
|
|
|
|
Route::put('history/{historyEntry}', [HistoryController::class, 'update']);
|
|
|
|
|
Route::delete('history/{historyEntry}', [HistoryController::class, 'destroy']);
|
|
|
|
|
});
|