feat(frontend): Séparation des demandes d'amitié envoyées et reçues
- Ajout de deux endpoints distincts dans Urls: getSentFriendRequestsWithUserId et getReceivedFriendRequestsWithUserId - Ajout de méthodes dans FriendsRepository et FriendsRepositoryImpl pour récupérer séparément les demandes envoyées et reçues - Ajout de la méthode cancelFriendRequest pour annuler une demande envoyée - Modification de FriendsProvider pour gérer deux listes distinctes: sentRequests et receivedRequests - Mise à jour de FriendsScreen pour afficher deux sections: - Demandes reçues: avec boutons Accepter/Rejeter - Demandes envoyées: avec bouton Annuler uniquement - Correction du mapping JSON dans FriendRequest.fromJson (userNom/userPrenoms correctement mappés) - Amélioration de FriendRequestCard pour gérer les deux types de demandes - Correction de la validation d'URL d'image dans FriendDetailScreen - Support du champ uuid dans UserModel.fromJson pour compatibilité backend
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'package:afterwork/domain/entities/friend.dart';
|
||||
import '../../domain/entities/friend.dart';
|
||||
import '../../domain/entities/friend_request.dart';
|
||||
|
||||
/// Interface [FriendsRepository] définissant les méthodes pour gérer les amis.
|
||||
/// Cette interface permet de séparer la logique métier des appels API et de la gestion des données.
|
||||
@@ -17,10 +18,11 @@ abstract class FriendsRepository {
|
||||
|
||||
/// Envoie une demande pour ajouter un nouvel ami via l'API.
|
||||
///
|
||||
/// [friend] : Objet [Friend] représentant l'ami à ajouter.
|
||||
/// [userId] : Identifiant unique de l'utilisateur qui envoie la demande.
|
||||
/// [friendId] : Identifiant unique de l'ami à ajouter.
|
||||
///
|
||||
/// Retourne un `Future<void>`. En cas d'erreur, l'implémentation peut lancer une exception.
|
||||
Future<void> addFriend(Friend friend);
|
||||
Future<void> addFriend(String userId, String friendId);
|
||||
|
||||
/// Supprime un ami existant via l'API.
|
||||
///
|
||||
@@ -45,4 +47,52 @@ abstract class FriendsRepository {
|
||||
///
|
||||
/// Retourne un `Future<void>`. En cas d'erreur, l'implémentation peut lancer une exception.
|
||||
Future<void> updateFriendStatus(String friendId, String status);
|
||||
|
||||
/// Récupère les demandes d'amitié en attente pour un utilisateur.
|
||||
///
|
||||
/// [userId] : Identifiant unique de l'utilisateur.
|
||||
/// [page] : Numéro de la page pour la pagination.
|
||||
/// [size] : Nombre d'éléments par page.
|
||||
///
|
||||
/// Retourne une liste de demandes d'amitié en attente.
|
||||
Future<List<FriendRequest>> getPendingFriendRequests(String userId, int page, int size);
|
||||
|
||||
/// Récupère les demandes d'amitié envoyées par un utilisateur.
|
||||
///
|
||||
/// [userId] : Identifiant unique de l'utilisateur.
|
||||
/// [page] : Numéro de la page pour la pagination.
|
||||
/// [size] : Nombre d'éléments par page.
|
||||
///
|
||||
/// Retourne une liste de demandes d'amitié envoyées.
|
||||
Future<List<FriendRequest>> getSentFriendRequests(String userId, int page, int size);
|
||||
|
||||
/// Récupère les demandes d'amitié reçues par un utilisateur.
|
||||
///
|
||||
/// [userId] : Identifiant unique de l'utilisateur.
|
||||
/// [page] : Numéro de la page pour la pagination.
|
||||
/// [size] : Nombre d'éléments par page.
|
||||
///
|
||||
/// Retourne une liste de demandes d'amitié reçues.
|
||||
Future<List<FriendRequest>> getReceivedFriendRequests(String userId, int page, int size);
|
||||
|
||||
/// Accepte une demande d'amitié.
|
||||
///
|
||||
/// [friendshipId] : Identifiant unique de la relation d'amitié.
|
||||
///
|
||||
/// Retourne un `Future<void>`. En cas d'erreur, l'implémentation peut lancer une exception.
|
||||
Future<void> acceptFriendRequest(String friendshipId);
|
||||
|
||||
/// Rejette une demande d'amitié.
|
||||
///
|
||||
/// [friendshipId] : Identifiant unique de la relation d'amitié.
|
||||
///
|
||||
/// Retourne un `Future<void>`. En cas d'erreur, l'implémentation peut lancer une exception.
|
||||
Future<void> rejectFriendRequest(String friendshipId);
|
||||
|
||||
/// Annule une demande d'amitié envoyée (supprime la relation).
|
||||
///
|
||||
/// [friendshipId] : Identifiant unique de la relation d'amitié.
|
||||
///
|
||||
/// Retourne un `Future<void>`. En cas d'erreur, l'implémentation peut lancer une exception.
|
||||
Future<void> cancelFriendRequest(String friendshipId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user