Files
watchgether-api/index.php
T
2026-07-11 09:20:26 +02:00

85 lines
2.7 KiB
PHP

<?php
// index.php
// --- HEADERS CORS (Indispensables pour ton site et ton appli mobile) ---
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
// Si le navigateur fait une pré-requête OPTIONS, on répond OK direct
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
http_response_code(200);
exit();
}
// --- CONFIGURATION ---
require_once __DIR__ . '/config/database.php';
require_once __DIR__ . '/controllers/UserController.php';
// Initialisation de la BDD et du contrôleur
$database = new Database();
$db = $database->getConnection();
$userController = new UserController($db);
// On récupère la route épurée (ex: si on tape /register, $route vaudra 'register')
$request_uri = explode('?', $_SERVER['REQUEST_URI'], 2)[0];
$route = trim($request_uri, '/');
$method = $_SERVER['REQUEST_METHOD'];
// Récupération des données JSON reçues (ex: les credentials d'inscription)
$data = json_decode(file_get_contents('php://input'), true) ?? [];
// --- ROUTEUR ---
switch ($route) {
case 'register':
if ($method === 'POST') {
$userController->register($data);
} else {
http_response_code(405);
echo json_encode(["error" => "Méthode non autorisée (POST requis)"]);
}
break;
case 'login':
if ($method === 'POST') {
$userController->login($data);
} else {
http_response_code(405);
echo json_encode(["error" => "Méthode non autorisée (POST requis)"]);
}
break;
case 'link-partner':
if ($method === 'POST') {
$userController->link($data);
} else {
http_response_code(405);
echo json_encode(["error" => "Méthode non autorisée (POST requis)"]);
}
break;
case 'pairing-status':
if ($method === 'POST') { // On utilise POST temporairement pour lire le user_id dans le JSON
$userController->pairingStatus($data);
} else {
http_response_code(405);
echo json_encode(["error" => "Méthode non autorisée (POST requis)"]);
}
break;
case 'unlink-partner':
if ($method === 'POST') {
$userController->unlink($data);
} else {
http_response_code(405);
echo json_encode(["error" => "Méthode non autorisée (POST requis)"]);
}
break;
default:
http_response_code(404);
echo json_encode(["error" => "Route /" . $route . " non trouvée"]);
break;
}