migrants-nt-sec/routes/api.php

43 lines
2.0 KiB
PHP

<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\MigrantController;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\HistoricalSearchController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\ActivityLogController;
// Public routes
Route::post('/login', [AuthController::class, 'login'])->name('login');
Route::get('/migrants', [MigrantController::class, 'index']);
Route::get('/migrants/{id}', [MigrantController::class, 'show']);
Route::get('/migrants/{id}/photos', [MigrantController::class, 'getPhotos']);
// Protected routes - require Sanctum authentication
Route::middleware('auth:sanctum')->group(function () {
Route::put('/user/account', [AuthController::class, 'update']);
// User routes
Route::get('/user', [AuthController::class, 'me'])->name('user.profile');
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
// Dashboard routes
Route::get('/dashboard/stats', [DashboardController::class, 'getStats']);
Route::get('/activity-logs', [ActivityLogController::class, 'index']);
// Migrant CRUD routes (now includes photo uploads)
Route::post('/migrants', [MigrantController::class, 'store']);
Route::put('/migrants/{id}', [MigrantController::class, 'update']);
Route::patch('/migrants/{id}', [MigrantController::class, 'update']);
Route::delete('/migrants/{id}', [MigrantController::class, 'destroy']);
// Photo management routes
Route::post('/migrants/{id}/photos', [MigrantController::class, 'uploadPhotos']);
Route::post('/migrants/photos/{photoId}/set-as-profile', [MigrantController::class, 'setAsProfilePhoto']);
Route::put('/migrants/photos/{photoId}/caption', [MigrantController::class, 'updatePhotoCaption']);
Route::delete('/migrants/photos/{photoId}', [MigrantController::class, 'deletePhoto']);
Route::post('/register', [AuthController::class, 'register'])->name('register');
Route::get('/users', [AuthController::class, 'getAllUsers'])->name('users.index');
});