trip-planner/backend/routes/api.php

55 lines
2.4 KiB
PHP
Raw Normal View History

<?php
2025-09-27 11:52:59 +02:00
use App\Infrastructure\Http\Controllers\API\User\Auth\AuthController;
use App\Infrastructure\Http\Controllers\API\Trip\TripController;
use App\Infrastructure\Http\Controllers\API\E2e\TestSetupController;
2025-09-28 13:31:43 +02:00
use App\Infrastructure\Http\Controllers\API\PlannableItem\PlannableItemController;
use App\Infrastructure\Http\Controllers\API\CalendarSlot\CalendarSlotController;
use App\Infrastructure\Http\Controllers\API\PlannedItem\PlannedItemController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
// Handle preflight OPTIONS requests
Route::options('{any}', function() {
return response('', 200);
})->where('any', '.*');
// Public routes
Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);
2025-09-27 11:52:59 +02:00
// E2E test routes (development/testing only)
Route::prefix('e2e/test')->group(function () {
Route::post('/setup/user', [TestSetupController::class, 'createTestUser']);
Route::post('/cleanup', [TestSetupController::class, 'cleanup']);
});
// Protected routes
Route::middleware('auth:sanctum')->group(function () {
Route::get('/user', function (Request $request) {
return $request->user();
});
Route::get('/profile', [AuthController::class, 'profile']);
Route::post('/logout', [AuthController::class, 'logout']);
2025-09-27 03:59:37 +02:00
// Trip routes
Route::apiResource('trips', TripController::class);
2025-09-28 13:31:43 +02:00
// Plannable items routes
Route::get('trips/{trip}/plannables', [PlannableItemController::class, 'index']);
Route::post('trips/{trip}/plannables', [PlannableItemController::class, 'store']);
Route::get('plannables/{plannableItem}', [PlannableItemController::class, 'show']);
Route::put('plannables/{plannableItem}', [PlannableItemController::class, 'update']);
Route::delete('plannables/{plannableItem}', [PlannableItemController::class, 'destroy']);
// Calendar slots routes
Route::get('trips/{trip}/calendar-slots', [CalendarSlotController::class, 'index']);
Route::put('calendar-slots/{calendarSlot}', [CalendarSlotController::class, 'update']);
Route::put('calendar-slots/{calendarSlot}/reorder', [CalendarSlotController::class, 'reorder']);
// Planned items routes
Route::post('planned-items', [PlannedItemController::class, 'store']);
Route::put('planned-items/{plannedItem}', [PlannedItemController::class, 'update']);
Route::delete('planned-items/{plannedItem}', [PlannedItemController::class, 'destroy']);
});