getMessage()); http_response_code(500); header('Content-Type: application/json'); echo json_encode(['success' => false, 'message' => 'Database connection failed']); exit; } // Headers CORS pour les requêtes cross-origin header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With'); // Gérer les requêtes OPTIONS (preflight) if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit; } // Log des requêtes API $logService = new LogService(APP_LOG_PATH); $logService->log('info', 'API Request: ' . $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'], null, $_SERVER['REMOTE_ADDR']); // Configuration du routeur API $router = new Router(); // Routes d'authentification $router->addRoute('POST', '/auth/login', 'AuthController', 'login'); $router->addRoute('POST', '/auth/logout', 'AuthController', 'logout', true); $router->addRoute('GET', '/auth/me', 'AuthController', 'me', true); // Routes des certificats $router->addRoute('GET', '/certificates', 'CertificatesController', 'index', true); $router->addRoute('POST', '/certificates', 'CertificatesController', 'create', true); $router->addRoute('POST', '/certificates/{id}/revoke', 'CertificatesController', 'revoke', true); $router->addRoute('GET', '/certificates/download', 'CertificatesController', 'download', true); $router->addRoute('GET', '/certificates/stats', 'CertificatesController', 'stats', true); // Routes des périmètres $router->addRoute('GET', '/perimeters', 'PerimetersController', 'index', true); $router->addRoute('POST', '/perimeters', 'PerimetersController', 'create', true); // Routes des utilisateurs $router->addRoute('GET', '/users', 'UsersController', 'index', true); $router->addRoute('POST', '/users', 'UsersController', 'create', true); $router->addRoute('DELETE', '/users/{id}', 'UsersController', 'delete', true); $router->addRoute('PUT', '/users/{id}/role', 'UsersController', 'updateRole', true); $router->addRoute('PUT', '/users/{id}/password', 'UsersController', 'updatePassword', true); // Route du dashboard $router->addRoute('GET', '/dashboard/stats', 'DashboardController', 'stats', true); // Dispatche la requête $router->dispatch();