Add pairing between users
This commit is contained in:
@@ -120,6 +120,61 @@ class User {
|
||||
return ["success" => false, "message" => "Erreur lors de la liaison."];
|
||||
}
|
||||
}
|
||||
|
||||
// --- 4. RÉCUPÉRER LE STATUT DE PAIRAGE ---
|
||||
public function getPairingStatus($user_id) {
|
||||
// On récupère les infos de l'utilisateur et de son partenaire s'il existe
|
||||
$query = "SELECT u1.pairing_code, u1.partner_id, u2.username AS partner_username
|
||||
FROM " . $this->table_name . " u1
|
||||
LEFT JOIN " . $this->table_name . " u2 ON u1.partner_id = u2.id
|
||||
WHERE u1.id = :user_id LIMIT 1";
|
||||
|
||||
$stmt = $this->conn->prepare($query);
|
||||
$stmt->bindParam(":user_id", $user_id);
|
||||
$stmt->execute();
|
||||
|
||||
if ($stmt->rowCount() > 0) {
|
||||
return ["success" => true, "data" => $stmt->fetch()];
|
||||
}
|
||||
return ["success" => false, "message" => "Utilisateur introuvable."];
|
||||
}
|
||||
|
||||
// --- 5. CASSER LE LIEN (DÉLIAISON) ---
|
||||
public function unlinkPartner($user_id) {
|
||||
// 1. On cherche d'abord l'ID du partenaire actuel
|
||||
$query = "SELECT partner_id FROM " . $this->table_name . " WHERE id = :user_id LIMIT 1";
|
||||
$stmt = $this->conn->prepare($query);
|
||||
$stmt->bindParam(":user_id", $user_id);
|
||||
$stmt->execute();
|
||||
|
||||
$user = $stmt->fetch();
|
||||
if (!$user || is_null($user['partner_id'])) {
|
||||
return ["success" => false, "message" => "Tu n'es lié à personne."];
|
||||
}
|
||||
|
||||
$partner_id = $user['partner_id'];
|
||||
|
||||
try {
|
||||
$this->conn->beginTransaction();
|
||||
|
||||
// On passe le partner_id à NULL pour les deux utilisateurs
|
||||
$query1 = "UPDATE " . $this->table_name . " SET partner_id = NULL WHERE id = :user_id";
|
||||
$stmt1 = $this->conn->prepare($query1);
|
||||
$stmt1->bindParam(":user_id", $user_id);
|
||||
$stmt1->execute();
|
||||
|
||||
$query2 = "UPDATE " . $this->table_name . " SET partner_id = NULL WHERE id = :partner_id";
|
||||
$stmt2 = $this->conn->prepare($query2);
|
||||
$stmt2->bindParam(":partner_id", $partner_id);
|
||||
$stmt2->execute();
|
||||
|
||||
$this->conn->commit();
|
||||
return ["success" => true, "message" => "Comptes déliés avec succès."];
|
||||
} catch (Exception $e) {
|
||||
$this->conn->rollBack();
|
||||
return ["success" => false, "message" => "Erreur lors de la déliaison."];
|
||||
}
|
||||
}
|
||||
|
||||
// --- UTILS / VALIDATIONS ---
|
||||
private function emailExists($email) {
|
||||
|
||||
Reference in New Issue
Block a user