Bon checkpoint + Refactoring
This commit is contained in:
@@ -30,7 +30,11 @@ class FriendsProvider with ChangeNotifier {
|
||||
/// [userId] : L'identifiant unique de l'utilisateur.
|
||||
/// [loadMore] : Indique s'il s'agit d'une demande de chargement supplémentaire pour la pagination.
|
||||
///
|
||||
/// En cas d'erreur, logue l'exception et gère l'état `isLoading`.
|
||||
/// Cette méthode :
|
||||
/// - Vérifie si un chargement est déjà en cours.
|
||||
/// - Initialise ou poursuit la pagination.
|
||||
/// - Exclut l'utilisateur lui-même de la liste.
|
||||
/// - Gère les erreurs et logue chaque étape pour une traçabilité complète.
|
||||
Future<void> fetchFriends(String userId, {bool loadMore = false}) async {
|
||||
if (_isLoading) {
|
||||
_logger.w('[LOG] Chargement déjà en cours, annulation de la nouvelle demande.');
|
||||
@@ -39,10 +43,10 @@ class FriendsProvider with ChangeNotifier {
|
||||
|
||||
_isLoading = true;
|
||||
notifyListeners();
|
||||
_logger.i('[LOG] Début du chargement des amis.');
|
||||
_logger.i('[LOG] Début du chargement des amis pour l\'utilisateur $userId.');
|
||||
|
||||
// Réinitialisation uniquement si ce n'est pas un chargement supplémentaire
|
||||
if (!loadMore) {
|
||||
// Réinitialisation de la liste et de la pagination si ce n'est pas un chargement supplémentaire
|
||||
_friendsList = [];
|
||||
_currentPage = 0;
|
||||
_hasMore = true;
|
||||
@@ -57,9 +61,16 @@ class FriendsProvider with ChangeNotifier {
|
||||
_hasMore = false;
|
||||
_logger.i('[LOG] Fin de liste atteinte, plus d\'amis à charger.');
|
||||
} else {
|
||||
_friendsList.addAll(newFriends);
|
||||
for (var friend in newFriends) {
|
||||
if (friend.friendId != userId) {
|
||||
_friendsList.add(friend);
|
||||
_logger.i("[LOG] Ajout de l'ami : ID = ${friend.friendId}, Nom = ${friend.friendFirstName} ${friend.friendLastName}");
|
||||
} else {
|
||||
_logger.w("[WARN] Exclusion de l'utilisateur lui-même de la liste d'amis : ${friend.friendId}");
|
||||
}
|
||||
}
|
||||
_currentPage++;
|
||||
_logger.i('[LOG] Amis ajoutés à la liste. Page actuelle : $_currentPage');
|
||||
_logger.i('[LOG] Page suivante préparée pour le prochain chargement, page actuelle : $_currentPage');
|
||||
}
|
||||
} catch (e) {
|
||||
_logger.e('[ERROR] Erreur lors de la récupération des amis : $e');
|
||||
|
||||
@@ -17,26 +17,31 @@ class UserProvider with ChangeNotifier {
|
||||
visitedPlacesCount: 0,
|
||||
);
|
||||
|
||||
bool _isEmailDisplayedElsewhere = false; // Ajout de la propriété pour contrôler l'affichage de l'email
|
||||
|
||||
/// Getter pour l'objet utilisateur.
|
||||
User get user => _user;
|
||||
|
||||
/// Getter pour vérifier si l'email est affiché ailleurs.
|
||||
bool get isEmailDisplayedElsewhere => _isEmailDisplayedElsewhere;
|
||||
|
||||
/// Méthode pour définir l'état d'affichage de l'email.
|
||||
void setEmailDisplayedElsewhere(bool value) {
|
||||
_isEmailDisplayedElsewhere = value;
|
||||
debugPrint("[LOG] isEmailDisplayedElsewhere mis à jour : $_isEmailDisplayedElsewhere");
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// Méthode pour définir les informations de l'utilisateur.
|
||||
/// Logue les informations fournies et notifie les listeners des changements.
|
||||
///
|
||||
/// [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()}");
|
||||
|
||||
_user = user;
|
||||
|
||||
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,
|
||||
@@ -59,12 +64,10 @@ class UserProvider with ChangeNotifier {
|
||||
);
|
||||
|
||||
debugPrint("[LOG] Nouvelles statistiques utilisateur : ${_user.toString()}");
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// Méthode pour réinitialiser les informations de l'utilisateur.
|
||||
/// 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 : ${_user.toString()}");
|
||||
@@ -83,7 +86,6 @@ class UserProvider with ChangeNotifier {
|
||||
);
|
||||
|
||||
debugPrint("[LOG] Informations utilisateur réinitialisées : ${_user.toString()}");
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user