Fix : Mise a jour et création d'un événement
This commit is contained in:
@@ -505,7 +505,7 @@ exports.createEvent = onRequest(httpOptions, withCors(async (req, res) => {
|
||||
const eventData = req.body.data;
|
||||
|
||||
const dataToSave = helpers.deserializeTimestamps(eventData, [
|
||||
'startDateTime', 'endDateTime', 'createdAt', 'updatedAt'
|
||||
'StartDateTime', 'EndDateTime', 'createdAt', 'updatedAt'
|
||||
]);
|
||||
|
||||
const docRef = await db.collection('events').add(dataToSave);
|
||||
@@ -529,9 +529,13 @@ exports.updateEvent = onRequest(httpOptions, withCors(async (req, res) => {
|
||||
}
|
||||
|
||||
const requestData = req.body.data;
|
||||
logger.info(`Update event - requestData keys: ${Object.keys(requestData || {}).join(', ')}`);
|
||||
|
||||
const eventId = requestData.eventId;
|
||||
logger.info(`Update event - eventId: ${eventId}`);
|
||||
|
||||
if (!eventId) {
|
||||
logger.error('Event ID is missing from request');
|
||||
res.status(400).json({ error: 'Event ID is required' });
|
||||
return;
|
||||
}
|
||||
@@ -548,7 +552,7 @@ exports.updateEvent = onRequest(httpOptions, withCors(async (req, res) => {
|
||||
data.updatedAt = admin.firestore.Timestamp.now();
|
||||
|
||||
const dataToSave = helpers.deserializeTimestamps(data, [
|
||||
'startDateTime', 'endDateTime'
|
||||
'StartDateTime', 'EndDateTime'
|
||||
]);
|
||||
|
||||
await db.collection('events').doc(eventId).update(dataToSave);
|
||||
|
||||
@@ -395,8 +395,14 @@ class EventFormController extends ChangeNotifier {
|
||||
);
|
||||
|
||||
final eventId = await EventFormService.createEvent(newEvent);
|
||||
|
||||
// Déplacer et mettre à jour les fichiers uniquement s'il y en a
|
||||
if (_uploadedFiles.isNotEmpty) {
|
||||
final newFiles = await EventFormService.moveFilesToEvent(_uploadedFiles, eventId);
|
||||
if (newFiles.isNotEmpty) {
|
||||
await EventFormService.updateEventDocuments(eventId, newFiles);
|
||||
}
|
||||
}
|
||||
|
||||
// Reload events
|
||||
final localUserProvider = Provider.of<LocalUserProvider>(context, listen: false);
|
||||
|
||||
@@ -77,6 +77,9 @@ class FirebaseFunctionsApiService implements ApiService {
|
||||
// Convertir les Timestamps avant l'envoi
|
||||
final convertedData = _convertTimestamps(data) as Map<String, dynamic>;
|
||||
|
||||
// Log pour débogage
|
||||
print('[API] Calling $functionName with eventId: ${convertedData['eventId']}');
|
||||
|
||||
final response = await http.post(
|
||||
url,
|
||||
headers: headers,
|
||||
|
||||
@@ -87,7 +87,7 @@ class DataService {
|
||||
/// Met à jour un événement
|
||||
Future<void> updateEvent(String eventId, Map<String, dynamic> data) async {
|
||||
try {
|
||||
final requestData = {'eventId': eventId, ...data};
|
||||
final requestData = {'eventId': eventId, 'data': data};
|
||||
await _apiService.call('updateEvent', requestData);
|
||||
} catch (e) {
|
||||
throw Exception('Erreur lors de la mise à jour de l\'événement: $e');
|
||||
|
||||
@@ -118,10 +118,17 @@ class EventFormService {
|
||||
|
||||
static Future<void> updateEvent(EventModel event) async {
|
||||
try {
|
||||
await _apiService.call('updateEvent', {
|
||||
'eventId': event.id,
|
||||
'data': event.toMap(),
|
||||
});
|
||||
if (event.id.isEmpty) {
|
||||
throw Exception("Cannot update event: Event ID is empty");
|
||||
}
|
||||
|
||||
developer.log('Updating event with ID: ${event.id}', name: 'EventFormService');
|
||||
|
||||
final eventData = event.toMap();
|
||||
eventData['eventId'] = event.id;
|
||||
await _apiService.call('updateEvent', eventData);
|
||||
|
||||
developer.log('Event updated successfully', name: 'EventFormService');
|
||||
} catch (e) {
|
||||
developer.log('Error updating event', name: 'EventFormService', error: e);
|
||||
rethrow;
|
||||
@@ -172,12 +179,19 @@ class EventFormService {
|
||||
}
|
||||
|
||||
static Future<void> updateEventDocuments(String eventId, List<Map<String, String>> documents) async {
|
||||
// Utiliser l'API pour mettre à jour les documents
|
||||
try {
|
||||
if (eventId.isEmpty) {
|
||||
throw Exception("Event ID cannot be empty");
|
||||
}
|
||||
|
||||
developer.log('Updating event documents for ID: $eventId (${documents.length} documents)', name: 'EventFormService');
|
||||
|
||||
await _apiService.call('updateEvent', {
|
||||
'eventId': eventId,
|
||||
'documents': documents,
|
||||
});
|
||||
|
||||
developer.log('Event documents updated successfully', name: 'EventFormService');
|
||||
} catch (e) {
|
||||
developer.log('Error updating event documents', name: 'EventFormService', error: e);
|
||||
throw Exception("Could not update event documents.");
|
||||
|
||||
Reference in New Issue
Block a user