from .connection import connect from .email_validation import is_valid_email from .get_user_by_email import get_user_by_email class EmailUpdateError(Exception): """Erreur de validation lisible par un humain (affichée telle quelle sur la page de profil) — mêmes règles qu'à l'inscription (format valide, unicité), voir create_user.py.""" def update_email(user_id, new_email): new_email = (new_email or "").strip().lower() if not is_valid_email(new_email): raise EmailUpdateError("Adresse email invalide.") existing = get_user_by_email(new_email) if existing and existing["id"] != user_id: raise EmailUpdateError("Un compte existe déjà avec cette adresse email.") conn = connect() conn.execute("UPDATE _users SET email = ? WHERE id = ?", (new_email, user_id)) conn.commit() conn.close() return new_email