From a59deb19a910cb877eec0ac199fbb6fde2a2e889 Mon Sep 17 00:00:00 2001 From: ElPoyo Date: Tue, 26 May 2026 13:40:33 +0200 Subject: [PATCH] =?UTF-8?q?perf:=20nettoyage=20code=20mort,=20s=C3=A9curis?= =?UTF-8?q?ation=20cl=C3=A9,=20et=20remplacement=20des=20prints?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- em2rp/functions/.gitignore | 1 + em2rp/lib/main.dart | 7 ++- em2rp/lib/providers/alert_provider.dart | 10 +-- em2rp/lib/providers/alert_provider_new.dart | 62 ------------------- em2rp/lib/providers/container_provider.dart | 14 ++--- .../providers/maintenance_provider_new.dart | 51 --------------- .../services/event_availability_service.dart | 27 ++++---- 7 files changed, 31 insertions(+), 141 deletions(-) delete mode 100644 em2rp/lib/providers/alert_provider_new.dart delete mode 100644 em2rp/lib/providers/maintenance_provider_new.dart diff --git a/em2rp/functions/.gitignore b/em2rp/functions/.gitignore index 8b20ed5..d3c0a61 100644 --- a/em2rp/functions/.gitignore +++ b/em2rp/functions/.gitignore @@ -2,3 +2,4 @@ node_modules/ *.local .env .env.local +serviceAccountKey.json diff --git a/em2rp/lib/main.dart b/em2rp/lib/main.dart index 5d27428..6d9e65b 100644 --- a/em2rp/lib/main.dart +++ b/em2rp/lib/main.dart @@ -1,5 +1,7 @@ import 'dart:async'; +import 'package:flutter/foundation.dart'; + import 'package:em2rp/providers/users_provider.dart'; import 'package:em2rp/providers/event_provider.dart'; import 'package:em2rp/providers/equipment_provider.dart'; @@ -7,7 +9,6 @@ import 'package:em2rp/providers/container_provider.dart'; import 'package:em2rp/providers/maintenance_provider.dart'; import 'package:em2rp/providers/alert_provider.dart'; import 'package:em2rp/utils/auth_guard_widget.dart'; -import 'package:em2rp/utils/performance_monitor.dart'; import 'package:em2rp/views/alerts_page.dart'; import 'package:em2rp/views/calendar_page.dart'; import 'package:em2rp/views/login_page.dart'; @@ -111,7 +112,7 @@ class _MyAppState extends State { if (FirebaseAuth.instance.currentUser != null) { unawaited( localAuthProvider.loadUserData().catchError((e) { - print('User data bootstrap failed: $e'); + if (kDebugMode) debugPrint('User data bootstrap failed: $e'); }), ); return; @@ -125,7 +126,7 @@ class _MyAppState extends State { ); unawaited( localAuthProvider.loadUserData().catchError((e) { - print('Dev user bootstrap failed: $e'); + if (kDebugMode) debugPrint('Dev user bootstrap failed: $e'); }), ); } diff --git a/em2rp/lib/providers/alert_provider.dart b/em2rp/lib/providers/alert_provider.dart index d0943b2..c916228 100644 --- a/em2rp/lib/providers/alert_provider.dart +++ b/em2rp/lib/providers/alert_provider.dart @@ -40,7 +40,7 @@ class AlertProvider extends ChangeNotifier { return AlertModel.fromMap(data as Map, data['id'] as String); }).toList(); } catch (e) { - print('Error loading alerts: $e'); + if (kDebugMode) debugPrint('Error loading alerts: $e'); _alerts = []; } finally { _isLoading = false; @@ -67,7 +67,7 @@ class AlertProvider extends ChangeNotifier { notifyListeners(); } } catch (e) { - print('Error marking alert as read: $e'); + if (kDebugMode) debugPrint('Error marking alert as read: $e'); rethrow; } } @@ -81,7 +81,7 @@ class AlertProvider extends ChangeNotifier { _alerts.removeWhere((a) => a.id == alertId); notifyListeners(); } catch (e) { - print('Error deleting alert: $e'); + if (kDebugMode) debugPrint('Error deleting alert: $e'); rethrow; } } @@ -95,7 +95,7 @@ class AlertProvider extends ChangeNotifier { await markAsRead(alertId); } } catch (e) { - print('Error marking all alerts as read: $e'); + if (kDebugMode) debugPrint('Error marking all alerts as read: $e'); rethrow; } } @@ -109,7 +109,7 @@ class AlertProvider extends ChangeNotifier { await deleteAlert(alertId); } } catch (e) { - print('Error deleting read alerts: $e'); + if (kDebugMode) debugPrint('Error deleting read alerts: $e'); rethrow; } } diff --git a/em2rp/lib/providers/alert_provider_new.dart b/em2rp/lib/providers/alert_provider_new.dart deleted file mode 100644 index f022b34..0000000 --- a/em2rp/lib/providers/alert_provider_new.dart +++ /dev/null @@ -1,62 +0,0 @@ -import 'package:flutter/foundation.dart'; -import 'package:em2rp/models/alert_model.dart'; -import 'package:em2rp/services/data_service.dart'; -import 'package:em2rp/services/api_service.dart'; - -class AlertProvider extends ChangeNotifier { - final DataService _dataService = DataService(FirebaseFunctionsApiService()); - - List _alerts = []; - bool _isLoading = false; - - List get alerts => _alerts; - bool get isLoading => _isLoading; - - /// Nombre d'alertes non lues - int get unreadCount => _alerts.where((a) => !a.isRead).length; - - /// Charger toutes les alertes via l'API - Future loadAlerts() async { - _isLoading = true; - notifyListeners(); - - try { - final alertsData = await _dataService.getAlerts(); - - _alerts = alertsData.map((data) { - return AlertModel.fromMap(data, data['id'] as String); - }).toList(); - - _isLoading = false; - notifyListeners(); - } catch (e) { - print('Error loading alerts: $e'); - _isLoading = false; - notifyListeners(); - rethrow; - } - } - - /// Recharger les alertes - Future refresh() async { - await loadAlerts(); - } - - /// Obtenir les alertes non lues - List get unreadAlerts { - return _alerts.where((a) => !a.isRead).toList(); - } - - /// Obtenir les alertes par type - List getByType(AlertType type) { - return _alerts.where((a) => a.type == type).toList(); - } - - /// Obtenir les alertes critiques (stock bas, équipement perdu) - List get criticalAlerts { - return _alerts.where((a) => - a.type == AlertType.lowStock || a.type == AlertType.lost - ).toList(); - } -} - diff --git a/em2rp/lib/providers/container_provider.dart b/em2rp/lib/providers/container_provider.dart index b429283..1f30007 100644 --- a/em2rp/lib/providers/container_provider.dart +++ b/em2rp/lib/providers/container_provider.dart @@ -66,7 +66,7 @@ class ContainerProvider with ChangeNotifier { // Charger toutes les pages en boucle while (hasMore) { pageCount++; - print('[ContainerProvider] Loading page $pageCount...'); + DebugLog.info('[ContainerProvider] Loading page $pageCount...'); final result = await _dataService.getContainersPaginated( limit: 100, // Charger 100 par page pour aller plus vite @@ -86,14 +86,14 @@ class ContainerProvider with ChangeNotifier { hasMore = result['hasMore'] as bool? ?? false; lastVisible = result['lastVisible'] as String?; - print('[ContainerProvider] Loaded ${containers.length} containers, total: ${_containers.length}, hasMore: $hasMore'); + DebugLog.info('[ContainerProvider] Loaded ${containers.length} containers, total: ${_containers.length}, hasMore: $hasMore'); } _isLoading = false; _isInitialized = true; notifyListeners(); } catch (e) { - print('Error loading containers: $e'); + DebugLog.error('[ContainerProvider] Error loading containers', e); _isLoading = false; notifyListeners(); } @@ -292,7 +292,7 @@ class ContainerProvider with ChangeNotifier { Future> getContainersByIds(List containerIds) async { if (containerIds.isEmpty) return []; - print('[ContainerProvider] Loading ${containerIds.length} containers by IDs...'); + DebugLog.info('[ContainerProvider] Loading ${containerIds.length} containers by IDs...'); try { // Vérifier d'abord le cache local @@ -320,7 +320,7 @@ class ContainerProvider with ChangeNotifier { } } - print('[ContainerProvider] Found ${cachedContainers.length} in cache, ${missingIds.length} missing'); + DebugLog.info('[ContainerProvider] Found ${cachedContainers.length} in cache, ${missingIds.length} missing'); // Si tous sont en cache, retourner directement if (missingIds.isEmpty) { @@ -341,12 +341,12 @@ class ContainerProvider with ChangeNotifier { } } - print('[ContainerProvider] Loaded ${loadedContainers.length} containers from API'); + DebugLog.info('[ContainerProvider] Loaded ${loadedContainers.length} containers from API'); // Retourner tous les conteneurs (cache + chargés) return [...cachedContainers, ...loadedContainers]; } catch (e) { - print('[ContainerProvider] Error loading containers by IDs: $e'); + DebugLog.error('[ContainerProvider] Error loading containers by IDs', e); rethrow; } } diff --git a/em2rp/lib/providers/maintenance_provider_new.dart b/em2rp/lib/providers/maintenance_provider_new.dart deleted file mode 100644 index 17fbbba..0000000 --- a/em2rp/lib/providers/maintenance_provider_new.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'package:flutter/foundation.dart'; -import 'package:em2rp/models/maintenance_model.dart'; -import 'package:em2rp/services/data_service.dart'; -import 'package:em2rp/services/api_service.dart'; - -class MaintenanceProvider extends ChangeNotifier { - final DataService _dataService = DataService(FirebaseFunctionsApiService()); - - List _maintenances = []; - bool _isLoading = false; - - List get maintenances => _maintenances; - bool get isLoading => _isLoading; - - /// Charger toutes les maintenances via l'API - Future loadMaintenances({String? equipmentId}) async { - _isLoading = true; - notifyListeners(); - - try { - final maintenancesData = await _dataService.getMaintenances( - equipmentId: equipmentId, - ); - - _maintenances = maintenancesData.map((data) { - return MaintenanceModel.fromMap(data, data['id'] as String); - }).toList(); - - _isLoading = false; - notifyListeners(); - } catch (e) { - print('Error loading maintenances: $e'); - _isLoading = false; - notifyListeners(); - rethrow; - } - } - - /// Recharger les maintenances - Future refresh({String? equipmentId}) async { - await loadMaintenances(equipmentId: equipmentId); - } - - /// Obtenir les maintenances pour un équipement spécifique - List getForEquipment(String equipmentId) { - return _maintenances.where((m) => - m.equipmentIds.contains(equipmentId) - ).toList(); - } -} - diff --git a/em2rp/lib/services/event_availability_service.dart b/em2rp/lib/services/event_availability_service.dart index 6d65fea..664d8cc 100644 --- a/em2rp/lib/services/event_availability_service.dart +++ b/em2rp/lib/services/event_availability_service.dart @@ -1,3 +1,4 @@ +import 'package:flutter/foundation.dart'; import 'package:em2rp/models/event_model.dart'; import 'package:em2rp/models/equipment_model.dart'; import 'package:em2rp/models/container_model.dart'; @@ -84,7 +85,7 @@ class EventAvailabilityService { final conflicts = []; try { - print('[EventAvailabilityService] Checking availability for equipment $equipmentId ($equipmentName)'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Checking availability for equipment $equipmentId ($equipmentName)'); // Utiliser la Cloud Function pour vérifier la disponibilité final result = await _dataService.checkEquipmentAvailability( @@ -94,14 +95,14 @@ class EventAvailabilityService { excludeEventId: excludeEventId, ); - print('[EventAvailabilityService] Result for $equipmentId: $result'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Result for $equipmentId: $result'); final available = result['available'] as bool? ?? true; - print('[EventAvailabilityService] Equipment $equipmentId available: $available'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Equipment $equipmentId available: $available'); if (!available) { final conflictsData = result['conflicts'] as List? ?? []; - print('[EventAvailabilityService] Found ${conflictsData.length} conflicts for equipment $equipmentId'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Found ${conflictsData.length} conflicts for equipment $equipmentId'); for (final conflictData in conflictsData) { final conflict = conflictData as Map; @@ -119,19 +120,19 @@ class EventAvailabilityService { conflictingEvent: event, overlapDays: conflict['overlapDays'] as int? ?? 0, )); - print('[EventAvailabilityService] Added conflict with event ${event.name}'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Added conflict with event ${event.name}'); } catch (e) { - print('[EventAvailabilityService] Error creating EventModel: $e'); - print('[EventAvailabilityService] EventData: $eventData'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Error creating EventModel: $e'); + if (kDebugMode) debugPrint('[EventAvailabilityService] EventData: $eventData'); } } } } } catch (e) { - print('[EventAvailabilityService] Error checking availability: $e'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Error checking availability: $e'); } - print('[EventAvailabilityService] Returning ${conflicts.length} conflicts for equipment $equipmentId'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Returning ${conflicts.length} conflicts for equipment $equipmentId'); return conflicts; } @@ -234,11 +235,11 @@ class EventAvailabilityService { } } } catch (e) { - print('[EventAvailabilityService] Error processing event $eventId for quantity: $e'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Error processing event $eventId for quantity: $e'); } } } catch (e) { - print('[EventAvailabilityService] Error getting available quantity: $e'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Error getting available quantity: $e'); } return totalQuantity - reservedQuantity; @@ -298,7 +299,7 @@ class EventAvailabilityService { } } } catch (e) { - print('[EventAvailabilityService] Error processing event $eventId: $e'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Error processing event $eventId: $e'); } } } @@ -361,7 +362,7 @@ class EventAvailabilityService { } } } catch (e) { - print('[EventAvailabilityService] Error processing event $eventId: $e'); + if (kDebugMode) debugPrint('[EventAvailabilityService] Error processing event $eventId: $e'); } }