feat: integrate ErrorService for consistent error display and standardize bloc error messages.
This commit is contained in:
@@ -2,6 +2,8 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:firebase_auth/firebase_auth.dart';
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
import 'package:travel_mate/services/notification_service.dart';
|
||||
import 'package:travel_mate/services/logger_service.dart';
|
||||
import 'package:travel_mate/services/error_service.dart';
|
||||
import 'user_event.dart' as event;
|
||||
import 'user_state.dart' as state;
|
||||
|
||||
@@ -17,6 +19,8 @@ class UserBloc extends Bloc<event.UserEvent, state.UserState> {
|
||||
/// Firestore instance for user data operations.
|
||||
final FirebaseFirestore _firestore = FirebaseFirestore.instance;
|
||||
|
||||
final _errorService = ErrorService();
|
||||
|
||||
/// Creates a new [UserBloc] with initial state.
|
||||
///
|
||||
/// Registers event handlers for all user-related events.
|
||||
@@ -50,7 +54,7 @@ class UserBloc extends Bloc<event.UserEvent, state.UserState> {
|
||||
final notificationService = NotificationService();
|
||||
await notificationService.initialize();
|
||||
final fcmToken = await notificationService.getFCMToken();
|
||||
print('DEBUG: UserBloc - FCM Token retrieved: $fcmToken');
|
||||
LoggerService.info('UserBloc - FCM Token retrieved: $fcmToken');
|
||||
|
||||
// Fetch user data from Firestore
|
||||
final userDoc = await _firestore
|
||||
@@ -81,21 +85,22 @@ class UserBloc extends Bloc<event.UserEvent, state.UserState> {
|
||||
|
||||
// Update FCM token if it changed
|
||||
if (fcmToken != null && user.fcmToken != fcmToken) {
|
||||
print('DEBUG: UserBloc - Updating FCM token in Firestore');
|
||||
LoggerService.info('UserBloc - Updating FCM token in Firestore');
|
||||
await _firestore.collection('users').doc(currentUser.uid).update({
|
||||
'fcmToken': fcmToken,
|
||||
});
|
||||
print('DEBUG: UserBloc - FCM token updated');
|
||||
LoggerService.info('UserBloc - FCM token updated');
|
||||
} else {
|
||||
print(
|
||||
'DEBUG: UserBloc - FCM token not updated. Local: $fcmToken, Firestore: ${user.fcmToken}',
|
||||
LoggerService.info(
|
||||
'UserBloc - FCM token not updated. Local: $fcmToken, Firestore: ${user.fcmToken}',
|
||||
);
|
||||
}
|
||||
|
||||
emit(state.UserLoaded(user));
|
||||
}
|
||||
} catch (e) {
|
||||
emit(state.UserError('Error loading user: $e'));
|
||||
} catch (e, stackTrace) {
|
||||
_errorService.logError('UserBloc', 'Error loading user: $e', stackTrace);
|
||||
emit(state.UserError('Impossible de charger l\'utilisateur'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,8 +129,9 @@ class UserBloc extends Bloc<event.UserEvent, state.UserState> {
|
||||
} else {
|
||||
emit(state.UserError('User not found'));
|
||||
}
|
||||
} catch (e) {
|
||||
emit(state.UserError('Error loading user: $e'));
|
||||
} catch (e, stackTrace) {
|
||||
_errorService.logError('UserBloc', 'Error loading user: $e', stackTrace);
|
||||
emit(state.UserError('Impossible de charger l\'utilisateur'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,8 +164,13 @@ class UserBloc extends Bloc<event.UserEvent, state.UserState> {
|
||||
});
|
||||
|
||||
emit(state.UserLoaded(updatedUser));
|
||||
} catch (e) {
|
||||
emit(state.UserError('Error updating user: $e'));
|
||||
} catch (e, stackTrace) {
|
||||
_errorService.logError(
|
||||
'UserBloc',
|
||||
'Error updating user: $e',
|
||||
stackTrace,
|
||||
);
|
||||
emit(state.UserError('Impossible de mettre à jour l\'utilisateur'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user