Files
unionflow-mobile-apps/lib/features/events/domain/usecases/submit_event_feedback.dart
dahoud 2639850861 feat(mobile): implémentation feedback + correction URLs inscriptions
Connecte le frontend mobile aux nouveaux endpoints backend événements.

## Repository Interface (evenement_repository.dart)
-  Ajout submitFeedback(evenementId, note, commentaire)
-  Ajout getFeedbacks(evenementId) → retourne feedbacks + stats

## Repository Impl (evenement_repository_impl.dart)
-  Correction inscrireEvenement : /inscrire → /inscriptions (POST)
-  Correction desinscrireEvenement : /desinscrire → /inscriptions (DELETE)
-  Implémentation submitFeedback : POST /api/evenements/{id}/feedback
-  Implémentation getFeedbacks : GET /api/evenements/{id}/feedbacks
- Gestion erreurs 400 (déjà soumis, pas participant, etc.)

## Use Case (submit_event_feedback.dart)
-  Remplacement UnimplementedError par appel repository
-  Validation note 1-5
-  Transmission note + commentaire optionnel

## Fonctionnalités débloquées
- Inscription/désinscription événements  (URLs corrigées)
- Soumission feedback post-événement 
- Consultation feedbacks + note moyenne 

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-16 20:15:35 +00:00

45 lines
1.2 KiB
Dart

/// Use case: Soumettre un feedback sur un événement
library submit_event_feedback;
import 'package:injectable/injectable.dart';
import '../repositories/evenement_repository.dart';
/// Use case pour soumettre un feedback après un événement
/// Note: Cette fonctionnalité nécessite un endpoint backend dédié
@injectable
class SubmitEventFeedback {
final IEvenementRepository _repository;
SubmitEventFeedback(this._repository);
/// Exécute le use case
///
/// [evenementId] - UUID de l'événement
/// [note] - Note de 1 à 5
/// [commentaire] - Commentaire (optionnel)
///
/// Soumet un feedback pour l'événement
/// Réservé aux participants de l'événement
///
/// Lève une exception si:
/// - L'événement n'existe pas
/// - Le membre n'a pas participé
/// - L'événement n'est pas terminé
/// - Un feedback a déjà été soumis
Future<void> call({
required String evenementId,
required int note,
String? commentaire,
}) async {
if (note < 1 || note > 5) {
throw ArgumentError('La note doit être entre 1 et 5');
}
await _repository.submitFeedback(
evenementId: evenementId,
note: note,
commentaire: commentaire,
);
}
}