Bon checkpoint + refactoring
This commit is contained in:
@@ -1,37 +1,65 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import '../../domain/entities/user.dart';
|
||||
|
||||
/// [UserProvider] est un `ChangeNotifier` qui gère les informations de l'utilisateur.
|
||||
/// [UserProvider] est un `ChangeNotifier` qui gère les informations complètes de l'utilisateur.
|
||||
/// Toutes les modifications et actions sont loguées pour assurer une traçabilité complète dans le terminal.
|
||||
class UserProvider with ChangeNotifier {
|
||||
String _userId = '';
|
||||
String _userName = '';
|
||||
String _userLastName = '';
|
||||
User _user = const User(
|
||||
userId: '',
|
||||
userLastName: '',
|
||||
userFirstName: '',
|
||||
email: '',
|
||||
motDePasse: '',
|
||||
profileImageUrl: '',
|
||||
eventsCount: 0,
|
||||
friendsCount: 0,
|
||||
postsCount: 0,
|
||||
visitedPlacesCount: 0,
|
||||
);
|
||||
|
||||
/// Getter pour l'ID de l'utilisateur
|
||||
String get userId => _userId;
|
||||
|
||||
/// Getter pour le nom de l'utilisateur
|
||||
String get userName => _userName;
|
||||
|
||||
/// Getter pour le prénom de l'utilisateur
|
||||
String get userLastName => _userLastName;
|
||||
/// Getter pour l'objet utilisateur.
|
||||
User get user => _user;
|
||||
|
||||
/// Méthode pour définir les informations de l'utilisateur.
|
||||
/// Logue les informations fournies et notifie les listeners des changements.
|
||||
///
|
||||
/// [id] : L'ID de l'utilisateur.
|
||||
/// [name] : Le nom de l'utilisateur.
|
||||
/// [lastName] : Le prénom de l'utilisateur.
|
||||
void setUser(String id, String name, String lastName) {
|
||||
debugPrint("[LOG] Tentative de définition des informations de l'utilisateur : ID = $id, Nom = $name, Prénom = $lastName");
|
||||
/// [user] : L'objet utilisateur contenant toutes les informations.
|
||||
void setUser(User user) {
|
||||
debugPrint("[LOG] Tentative de définition des informations de l'utilisateur : ${user.toString()}");
|
||||
|
||||
_userId = id;
|
||||
_userName = name;
|
||||
_userLastName = lastName;
|
||||
_user = user;
|
||||
|
||||
debugPrint("[LOG] Informations utilisateur définies : ID = $_userId, Nom = $_userName, Prénom = $_userLastName");
|
||||
debugPrint("[LOG] Informations utilisateur définies : ${_user.toString()}");
|
||||
|
||||
// Notifie les widgets écoutant ce provider qu'une modification a eu lieu.
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// Méthode pour mettre à jour des statistiques de l'utilisateur.
|
||||
/// Cette méthode met à jour individuellement des attributs spécifiques comme le nombre d'amis ou d'événements.
|
||||
void updateStatistics({
|
||||
int? eventsCount,
|
||||
int? friendsCount,
|
||||
int? postsCount,
|
||||
int? visitedPlacesCount,
|
||||
}) {
|
||||
debugPrint("[LOG] Mise à jour des statistiques utilisateur");
|
||||
|
||||
_user = User(
|
||||
userId: _user.userId,
|
||||
userLastName: _user.userLastName,
|
||||
userFirstName: _user.userFirstName,
|
||||
email: _user.email,
|
||||
motDePasse: _user.motDePasse,
|
||||
profileImageUrl: _user.profileImageUrl,
|
||||
eventsCount: eventsCount ?? _user.eventsCount,
|
||||
friendsCount: friendsCount ?? _user.friendsCount,
|
||||
postsCount: postsCount ?? _user.postsCount,
|
||||
visitedPlacesCount: visitedPlacesCount ?? _user.visitedPlacesCount,
|
||||
);
|
||||
|
||||
debugPrint("[LOG] Nouvelles statistiques utilisateur : ${_user.toString()}");
|
||||
|
||||
// Notifie les widgets écoutant ce provider qu'une modification a eu lieu
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@@ -39,15 +67,23 @@ class UserProvider with ChangeNotifier {
|
||||
/// Les valeurs sont loguées avant et après la réinitialisation.
|
||||
void resetUser() {
|
||||
debugPrint("[LOG] Réinitialisation des informations de l'utilisateur.");
|
||||
debugPrint("[LOG] Valeurs avant réinitialisation : ID = $_userId, Nom = $_userName, Prénom = $_userLastName");
|
||||
debugPrint("[LOG] Valeurs avant réinitialisation : ${_user.toString()}");
|
||||
|
||||
_userId = '';
|
||||
_userName = '';
|
||||
_userLastName = '';
|
||||
_user = const User(
|
||||
userId: '',
|
||||
userLastName: '',
|
||||
userFirstName: '',
|
||||
email: '',
|
||||
motDePasse: '',
|
||||
profileImageUrl: '',
|
||||
eventsCount: 0,
|
||||
friendsCount: 0,
|
||||
postsCount: 0,
|
||||
visitedPlacesCount: 0,
|
||||
);
|
||||
|
||||
debugPrint("[LOG] Informations utilisateur réinitialisées : ID = $_userId, Nom = $_userName, Prénom = $_userLastName");
|
||||
debugPrint("[LOG] Informations utilisateur réinitialisées : ${_user.toString()}");
|
||||
|
||||
// Notifie les widgets écoutant ce provider que l'utilisateur a été réinitialisé
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user