Refactoring

This commit is contained in:
DahoudG
2024-09-02 21:16:31 +00:00
parent ef72a81b64
commit 04f240b521
5 changed files with 145 additions and 42 deletions

View File

@@ -168,4 +168,29 @@ class EventRemoteDataSource {
throw ServerExceptionWithMessage('Une erreur est survenue lors de la fermeture de l\'événement.');
}
}
/// Rouvrir un événement.
Future<void> reopenEvent(String eventId) async {
print('Réouverture de l\'événement avec l\'ID: $eventId');
final response = await client.post(
Uri.parse('${Urls.eventsUrl}/$eventId/reopen'),
headers: {'Content-Type': 'application/json'},
);
print('Statut de la réponse: ${response.statusCode}');
if (response.statusCode == 200) {
print('Événement rouvert 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 réouverture de l\'événement: $errorMessage');
throw ServerExceptionWithMessage(errorMessage);
} else {
print('Erreur lors de la réouverture de l\'événement: ${response.body}');
throw ServerExceptionWithMessage('Une erreur est survenue lors de la réouverture de l\'événement.');
}
}
}

View File

@@ -1,18 +1,21 @@
import 'package:afterwork/data/models/user_model.dart';
/// Modèle de données représentant un événement.
/// Cette classe encapsule toutes les propriétés d'un événement, y compris
/// le titre, la description, la date, la localisation, la catégorie, les liens,
/// l'image, le créateur, les participants et le statut de l'événement.
class EventModel {
final String id;
final String title;
final String description;
final String date;
final String location;
final String category;
final String link;
final String? imageUrl;
final UserModel creator;
final List<UserModel> participants;
final String status;
final String id; // Identifiant unique de l'événement
final String title; // Titre de l'événement
final String description; // Description de l'événement
final String date; // Date de l'événement
final String location; // Localisation de l'événement
final String category; // Catégorie de l'événement
final String link; // Lien associé à l'événement
final String? imageUrl; // URL de l'image de l'événement (optionnel)
final UserModel creator; // Créateur de l'événement
final List<UserModel> participants; // Liste des participants à l'événement
final String status; // Statut de l'événement (e.g., "OPEN", "CLOSED")
/// Constructeur pour initialiser toutes les propriétés de l'événement.
EventModel({
@@ -31,6 +34,9 @@ class EventModel {
/// Convertit un objet JSON en `EventModel`.
factory EventModel.fromJson(Map<String, dynamic> json) {
// Log de la conversion depuis JSON
print('Conversion de l\'objet JSON en EventModel: ${json['id']}');
return EventModel(
id: json['id'],
title: json['title'],
@@ -52,6 +58,9 @@ class EventModel {
/// Convertit un `EventModel` en objet JSON.
Map<String, dynamic> toJson() {
// Log de la conversion en JSON
print('Conversion de l\'EventModel en objet JSON: $id');
return {
'id': id,
'title': title,
@@ -63,6 +72,7 @@ class EventModel {
'imageUrl': imageUrl,
'creator': creator.toJson(),
'participants': participants.map((user) => user.toJson()).toList(),
'status': status,
};
}
}