diff --git a/em2rp/functions/index.js b/em2rp/functions/index.js index 48b7115..2326382 100644 --- a/em2rp/functions/index.js +++ b/em2rp/functions/index.js @@ -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); diff --git a/em2rp/lib/controllers/event_form_controller.dart b/em2rp/lib/controllers/event_form_controller.dart index 726440f..bf15e5f 100644 --- a/em2rp/lib/controllers/event_form_controller.dart +++ b/em2rp/lib/controllers/event_form_controller.dart @@ -395,8 +395,14 @@ class EventFormController extends ChangeNotifier { ); final eventId = await EventFormService.createEvent(newEvent); - final newFiles = await EventFormService.moveFilesToEvent(_uploadedFiles, eventId); - await EventFormService.updateEventDocuments(eventId, newFiles); + + // 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(context, listen: false); diff --git a/em2rp/lib/services/api_service.dart b/em2rp/lib/services/api_service.dart index be3db6a..3e1b937 100644 --- a/em2rp/lib/services/api_service.dart +++ b/em2rp/lib/services/api_service.dart @@ -77,6 +77,9 @@ class FirebaseFunctionsApiService implements ApiService { // Convertir les Timestamps avant l'envoi final convertedData = _convertTimestamps(data) as Map; + // Log pour débogage + print('[API] Calling $functionName with eventId: ${convertedData['eventId']}'); + final response = await http.post( url, headers: headers, diff --git a/em2rp/lib/services/data_service.dart b/em2rp/lib/services/data_service.dart index 671faf7..837bcc6 100644 --- a/em2rp/lib/services/data_service.dart +++ b/em2rp/lib/services/data_service.dart @@ -87,7 +87,7 @@ class DataService { /// Met à jour un événement Future updateEvent(String eventId, Map 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'); diff --git a/em2rp/lib/services/event_form_service.dart b/em2rp/lib/services/event_form_service.dart index 04efb49..90ac2e6 100644 --- a/em2rp/lib/services/event_form_service.dart +++ b/em2rp/lib/services/event_form_service.dart @@ -118,10 +118,17 @@ class EventFormService { static Future 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 updateEventDocuments(String eventId, List> 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.");