'Accès refusé. Clé secrète requise.'])); } // Déterminer le chemin du plugin $plugin_dir = dirname(dirname(__DIR__)); $wp_load_path = $plugin_dir . '/../../../../wp-load.php'; // Vérifier que wp-load.php existe if (!file_exists($wp_load_path)) { http_response_code(500); header('Content-Type: application/json'); die(json_encode(['error' => 'Erreur : wp-load.php introuvable.'])); } require_once $wp_load_path; // Charger les classes nécessaires require_once dirname(__DIR__) . '/models/Event_Model.php'; require_once dirname(__DIR__) . '/controllers/Notifications_Controller.php'; use ESI_CRVI_AGENDA\models\CRVI_Event_Model; use ESI_CRVI_AGENDA\controllers\CRVI_Notifications_Controller; // Récupérer l'action demandée $action = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : ''; // Définir le header JSON header('Content-Type: application/json; charset=utf-8'); // Router vers l'action appropriée switch ($action) { case 'get_today_incomplete': $result = CRVI_Event_Model::get_today_incomplete_events(); echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); break; case 'send_sms_reminder': $days = isset($_GET['days']) ? (int) $_GET['days'] : 3; $result = CRVI_Notifications_Controller::send_sms_reminder($days); // Si c'est une erreur de validation, retourner un code 400 if (isset($result['error'])) { http_response_code(400); } echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); break; default: http_response_code(400); echo json_encode([ 'error' => 'Action non reconnue', 'available_actions' => [ 'get_today_incomplete' => 'Récupère tous les événements d\'aujourd\'hui non complétés', 'send_sms_reminder' => 'Envoie des SMS de rappel pour les événements dans X jours (paramètre: days=1|2|3)' ] ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); break; }