migrants-nt-sec/routes/api.php

46 lines
2.1 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::post('/register', [AuthController::class, 'register'])->name('register');
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 () {
// 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']); // Can include photos
Route::put('/migrants/{id}', [MigrantController::class, 'update']); // Can include photos
Route::patch('/migrants/{id}', [MigrantController::class, 'update']); // Can include photos
Route::delete('/migrants/{id}', [MigrantController::class, 'destroy']); // Deletes photos too
// Photo management routes (all handled by MigrantController)
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']);
});
// Admin-only routes
// Route::middleware('ability:admin')->group(function () {
// Route::post('/register', [AuthController::class, 'register'])->name('register');
// });