db = $db; $this->userModel = new User($this->db); $this->jwt_secret = $jwt_secret; } // --- INTERCEPTE L'INSCRIPTION --- public function register($data) { if (empty($data['username']) || empty($data['email']) || empty($data['password'])) { http_response_code(400); echo json_encode(["success" => false, "message" => "Données incomplètes. Pseudo, email et mot de passe requis."]); return; } $result = $this->userModel->register($data['username'], $data['email'], $data['password']); if ($result['success']) { http_response_code(201); } else { http_response_code(400); } echo json_encode($result); } // --- INTERCEPTE LA CONNEXION --- public function login($data) { if (empty($data['email']) || empty($data['password'])) { http_response_code(400); echo json_encode(["success" => false, "message" => "Email et mot de passe requis."]); return; } $result = $this->userModel->login($data['email'], $data['password']); if ($result['success']) { require_once __DIR__ . '/../utils/JWT.php'; $token_payload = ["user_id" => $result['user']['id']]; $token = JWT::generate($token_payload, $this->jwt_secret); http_response_code(200); echo json_encode([ "success" => true, "token" => $token, "user" => [ "id" => $result['user']['id'], "username" => $result['user']['username'], "email" => $result['user']['email'], "pairing_code" => $result['user']['pairing_code'], "partner_id" => $result['user']['partner_id'] ], "partner_id" => $result['user']['partner_id'] // On utilise bien le résultat de la requête ]); } else { http_response_code(401); echo json_encode(["success" => false, "message" => $result['message'] ?? "Email ou mot de passe incorrect."]); } } // --- INTERCEPTE LA LIAISON DE COMPTES --- public function link($data) { if (empty($data['user_id']) || empty($data['partner_code'])) { http_response_code(400); echo json_encode(["success" => false, "message" => "ID utilisateur et code partenaire requis."]); return; } $result = $this->userModel->linkPartner($data['user_id'], $data['partner_code']); if ($result['success']) { http_response_code(200); } else { http_response_code(400); } echo json_encode($result); } // --- INTERCEPTE LA VÉRIFICATION DU STATUT --- public function pairingStatus($data) { if (empty($data['user_id'])) { http_response_code(400); echo json_encode(["success" => false, "message" => "ID utilisateur requis."]); return; } $result = $this->userModel->getPairingStatus($data['user_id']); http_response_code($result['success'] ? 200 : 400); echo json_encode($result); } // --- INTERCEPTE LA DÉLIAISON --- public function unlink($data) { if (empty($data['user_id'])) { http_response_code(400); echo json_encode(["success" => false, "message" => "ID utilisateur requis."]); return; } $result = $this->userModel->unlinkPartner($data['user_id']); http_response_code($result['success'] ? 200 : 400); echo json_encode($result); } }