34 lines
1.4 KiB
PHP
34 lines
1.4 KiB
PHP
<?php
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\PersonController;
|
|
use App\Http\Controllers\PublicSearchController;
|
|
use App\Http\Controllers\AuthController;
|
|
|
|
Route::post('/login', [AuthController::class, 'login'])->name('login');
|
|
|
|
// Public search endpoints - allow searching without authentication
|
|
Route::get('/persons/search', [PublicSearchController::class, 'search'])->name('persons.public.search');
|
|
|
|
// Public endpoint to get a specific migrant's full record
|
|
Route::get('/migrants/{person_id}', [PublicSearchController::class, 'getRecord'])->name('migrants.get');
|
|
|
|
// Protected routes - require Sanctum authentication
|
|
Route::middleware('auth:sanctum')->group(function () {
|
|
// User authentication routes
|
|
Route::get('/user', [AuthController::class, 'me'])->name('user.profile');
|
|
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
|
|
|
|
// Admin-only routes
|
|
Route::middleware('ability:admin')->group(function () {
|
|
Route::post('/register', [AuthController::class, 'register'])->name('register');
|
|
});
|
|
|
|
// Person API endpoints - all CRUD operations protected by authentication
|
|
Route::apiResource('persons', PersonController::class);
|
|
|
|
// Custom route for finding a person by ID card number
|
|
Route::get('persons/id-card/{idCardNo}', [PersonController::class, 'findByIdCard'])->name('persons.findByIdCard');
|
|
});
|