diff --git a/src/fr/iutfbleau/papillon/GestionRappel.java b/src/fr/iutfbleau/papillon/GestionRappel.java index eff8ddc..fa4506f 100644 --- a/src/fr/iutfbleau/papillon/GestionRappel.java +++ b/src/fr/iutfbleau/papillon/GestionRappel.java @@ -1,60 +1,105 @@ + +package fr.iutfbleau.papillon; + +import java.sql.SQLException; import java.util.List; +/** + * La classe GestionRappel gère les opérations métier + * liées aux rappels de l’utilisateur actuellement identifié. + * + *

Elle fait le lien entre la couche applicative et la couche base de données + * (via la classe {@link RappelBD}) et s’appuie sur {@link UserKey} + * et {@link UtilisateurBD} pour identifier l’utilisateur.

+ * + * @version 1.0 + * @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL + */ public class GestionRappel { - public List lister() throws Exception { - return BaseDeDonnees.lister(); - } + /** Identifiant de l’utilisateur courant. */ + private final int utilisateurId; - public int ajouter(Rappel r) throws Exception { - return BaseDeDonnees.ajouter(r); - } - - public int modifierParId(int id, Rappel r) throws Exception { - return BaseDeDonnees.modifier(id, r); - } - - public int supprimerParId(int id) throws Exception { - return BaseDeDonnees.supprimer(id); - } - - // === petit main pour test rapide === - public static void main(String[] args) { + /** + * Constructeur : initialise l’utilisateur courant à partir de sa clé locale. + * Si la clé n’existe pas, elle est créée automatiquement. + */ + public GestionRappel() { + int uid = -1; try { - GestionRappel g = new GestionRappel(); - - // Ajouter - Rappel r = new Rappel("Acheter du café", "avant 17h", "Urgent", 1); - int id = g.ajouter(r); - System.out.println("Ajouté : " + id); - - // Lister - System.out.println("\nListe des rappels :"); - for (Rappel x : g.lister()) { - System.out.println(" - " + x); - } - - // Modifier - r.setTitre("Acheter du café (bio)"); - r.setRang(3); - - g.modifierParId(r.getId(), r); - System.out.println("\nAprès modification :"); - - for (Rappel x : g.lister()) { - System.out.println(" - " + x); - } - - // Supprimer - // g.supprimerParId(r.getId()); - // System.out.println("\nAprès suppression :"); - - // for (Rappel x : g.lister()) { - // System.out.println(" - " + x); - - // } + String cle = UserKey.lireOuCreerCle(); // clé locale + uid = UtilisateurBD.getOrCreateIdByKey(cle); // crée ou récupère utilisateur } catch (Exception e) { e.printStackTrace(); } + this.utilisateurId = uid; + System.out.println("Utilisateur courant id=" + this.utilisateurId); + } + + /** + * Ajoute un nouveau rappel pour l’utilisateur courant. + * + * @param titre le titre du rappel + * @param contenu le contenu ou la description du rappel + * @param theme la catégorie ou le thème du rappel + * @param rang la priorité ou l’ordre du rappel + * @return l’identifiant du rappel nouvellement ajouté + * @throws SQLException si une erreur SQL survient + */ + public int ajouter(String titre, String contenu, String theme, int rang) throws SQLException { + Rappel r = new Rappel(titre, contenu, theme, rang); + return RappelBD.ajouter(r, this.utilisateurId); + } + + /** + * Récupère tous les rappels de l’utilisateur courant. + * + * @return la liste des rappels enregistrés + * @throws SQLException si une erreur SQL survient + */ + public List lister() throws SQLException { + return RappelBD.listerParUtilisateur(this.utilisateurId); + } + + /** + * Modifie un rappel existant appartenant à l’utilisateur courant. + * + * @param id l’identifiant du rappel à modifier + * @param r l’objet {@link Rappel} contenant les nouvelles informations + * @return le nombre de lignes modifiées + * @throws SQLException si une erreur SQL survient + */ + public int modifierParId(int id, Rappel r) throws SQLException { + return RappelBD.modifier(id, r, this.utilisateurId); + } + + /** + * Supprime un rappel spécifique appartenant à l’utilisateur courant. + * + * @param id l’identifiant du rappel à supprimer + * @return le nombre de lignes supprimées + * @throws SQLException si une erreur SQL survient + */ + public int supprimerParId(int id) throws SQLException { + return RappelBD.supprimer(id, this.utilisateurId); + } + + /** + * Supprime tous les rappels appartenant à l’utilisateur courant. + * + * @return le nombre de rappels supprimés + * @throws SQLException si une erreur SQL survient + */ + public int viderTousMesRappels() throws SQLException { + return RappelBD.supprimerToutPourUtilisateur(this.utilisateurId); + } + + /** + * Retourne l’identifiant de l’utilisateur courant. + * + * @return l’identifiant de l’utilisateur + */ + public int getUtilisateurId() { + return this.utilisateurId; } }