Class UtilisateurRepository

java.lang.Object
server.bd.repository.UtilisateurRepository
All Implemented Interfaces:
IUtilisateurRepository

public class UtilisateurRepository extends Object implements IUtilisateurRepository
Repository gérant toutes les opérations de base de données liées aux utilisateurs. Implémente les fonctionnalités CRUD pour les clients et gère l'authentification. Cette classe utilise le pattern Repository pour encapsuler l'accès aux données et maintenir la séparation entre la logique métier et la couche de persistance.
Version:
V1
Author:
Prévost Donovan
  • Constructor Details

    • UtilisateurRepository

      public UtilisateurRepository()
      Constructeur qui initialise la connexion à la base de données. Récupère l'instance unique de ConnexionBD via le pattern Singleton.
  • Method Details

    • getClientId

      public int getClientId(String pseudo)
      Récupère l'identifiant unique d'un client à partir de son pseudo. Effectue une recherche dans la table clients par pseudo.
      Parameters:
      pseudo - le pseudo du client à rechercher
      Returns:
      l'ID du client si trouvé, -1 si aucun client ne correspond
    • getClients

      public List<Client> getClients()
      Récupère la liste complète de tous les clients enregistrés. Les clients sont triés par identifiant croissant pour assurer un ordre cohérent dans les résultats.
      Returns:
      une liste de tous les clients, ou une liste vide si aucun client
    • getClientById

      public Client getClientById(int id)
      Récupère un client spécifique à partir de son identifiant unique. Utilisé pour les opérations nécessitant un client précis.
      Parameters:
      id - l'identifiant unique du client
      Returns:
      l'objet Client correspondant, ou null si aucun client trouvé
    • getClientByPseudo

      public Client getClientByPseudo(String pseudo)
      Récupère un client à partir de son pseudo unique. Le pseudo étant un identifiant métier, cette méthode est fréquemment utilisée lors des connexions et recherches.
      Parameters:
      pseudo - le pseudo unique du client
      Returns:
      l'objet Client correspondant, ou null si aucun client trouvé
    • getConnexionValideClient

      public Boolean getConnexionValideClient(String pseudo, String mdp)
      Valide les identifiants de connexion d'un client. Vérifie que la combinaison pseudo/mot de passe existe dans la base. Cette méthode est utilisée pour l'authentification des utilisateurs.
      Parameters:
      pseudo - le pseudo du client
      mdp - le mot de passe en clair
      Returns:
      true si les identifiants sont valides, false s'ils sont incorrects, null en cas d'erreur de base de données
    • listClients

      public List<Client> listClients()
      Alias de la méthode getClients() pour compatibilité d'interface. Retourne la liste complète des clients enregistrés.
      Returns:
      une liste de tous les clients
    • createClient

      public int createClient(Client client)
      Crée un nouveau client dans la base de données. Vérifie l'unicité du pseudo avant l'insertion et génère automatiquement l'identifiant et la date de création.
      Specified by:
      createClient in interface IUtilisateurRepository
      Parameters:
      client - l'objet Client à créer (doit contenir pseudo et mot de passe)
      Returns:
      l'ID généré du nouveau client si création réussie, -1 en cas d'échec
    • majClient

      public boolean majClient(Client client)
      Met à jour les informations d'un client existant. Modifie le pseudo et/ou le mot de passe d'un client identifié par son ID.
      Parameters:
      client - l'objet Client contenant les nouvelles données et l'ID existant
      Returns:
      true si la mise à jour a réussi, false sinon
    • authenticate

      public int authenticate(String pseudo, String mdp)
      Authentifie un client avec ses identifiants de connexion. Combine la recherche par pseudo et la vérification du mot de passe pour valider l'identité d'un utilisateur.
      Specified by:
      authenticate in interface IUtilisateurRepository
      Parameters:
      pseudo - le pseudo du client
      mdp - le mot de passe en clair
      Returns:
      l'ID du client si authentification réussie, -1 si échec
    • getAvatarById

      public byte[] getAvatarById(int clientId)
      Récupère l'avatar (image de profil) d'un client par son identifiant. Retourne les données binaires de l'image stockée en base de données.
      Specified by:
      getAvatarById in interface IUtilisateurRepository
      Parameters:
      clientId - l'identifiant du client
      Returns:
      les données binaires de l'avatar, ou null si aucun avatar ou erreur