Refactoring et amélioration de la création et l'affichage d'un évènement.

This commit is contained in:
DahoudG
2024-09-02 03:04:40 +00:00
parent b8d7cfcb8d
commit 7bc7761591
9 changed files with 226 additions and 95 deletions

View File

@@ -143,4 +143,29 @@ class EventRemoteDataSource {
print('Réaction réussie');
}
}
/// Fermer un événement.
Future<void> closeEvent(String eventId) async {
print('Fermeture de l\'événement avec l\'ID: $eventId');
final response = await client.post(
Uri.parse('${Urls.eventsUrl}/$eventId/close'),
headers: {'Content-Type': 'application/json'},
);
print('Statut de la réponse: ${response.statusCode}');
if (response.statusCode == 200) {
print('Événement fermé avec succès');
} else if (response.statusCode == 400) {
// Si le serveur retourne une erreur 400, vérifiez le corps du message
final responseBody = json.decode(response.body);
final errorMessage = responseBody['message'] ?? 'Erreur inconnue';
print('Erreur lors de la fermeture de l\'événement: $errorMessage');
throw ServerExceptionWithMessage(errorMessage); // Utiliser la nouvelle exception ici
} else {
print('Erreur lors de la fermeture de l\'événement: ${response.body}');
throw ServerExceptionWithMessage('Une erreur est survenue lors de la fermeture de l\'événement.');
}
}
}

View File

@@ -12,6 +12,7 @@ class EventModel {
final String? imageUrl;
final UserModel creator;
final List<UserModel> participants;
final String status;
/// Constructeur pour initialiser toutes les propriétés de l'événement.
EventModel({
@@ -25,6 +26,7 @@ class EventModel {
this.imageUrl,
required this.creator,
required this.participants,
required this.status,
});
/// Convertit un objet JSON en `EventModel`.
@@ -38,6 +40,7 @@ class EventModel {
category: json['category'],
link: json['link'] ?? '', // Assure qu'il ne soit pas null
imageUrl: json['imageUrl'] ?? '', // Assure qu'il ne soit pas null
status: json['status'],
creator: UserModel.fromJson(json['creator']),
participants: json['participants'] != null
? (json['participants'] as List)