feat: integrate ErrorService for consistent error display and standardize bloc error messages.

This commit is contained in:
Van Leemput Dayron
2025-12-02 13:59:40 +01:00
parent 1e70b9e09f
commit 6757cb013a
24 changed files with 927 additions and 608 deletions

View File

@@ -171,18 +171,35 @@ class AuthService {
}
} on GoogleSignInException catch (e) {
_errorService.logError('Google Sign-In error: $e', StackTrace.current);
_errorService.showError(
message: 'La connexion avec Google a échoué. Veuillez réessayer.',
);
rethrow;
} on FirebaseAuthException catch (e) {
_errorService.logError(
'Firebase error during Google Sign-In initialization: $e',
StackTrace.current,
);
if (e.code == 'account-exists-with-different-credential') {
_errorService.showError(
message:
'Un compte existe déjà avec cette adresse email. Veuillez vous connecter avec la méthode utilisée précédemment.',
);
} else {
_errorService.showError(
message:
'Une erreur est survenue lors de la connexion avec Google. Veuillez réessayer plus tard.',
);
}
rethrow;
} catch (e) {
_errorService.logError(
'Unknown error during Google Sign-In initialization: $e',
StackTrace.current,
);
_errorService.showError(
message: 'Une erreur inattendue est survenue. Veuillez réessayer.',
);
rethrow;
}
}
@@ -216,9 +233,9 @@ class AuthService {
],
// Configuration for Android/Web
webAuthenticationOptions: WebAuthenticationOptions(
clientId: 'be.devdayronvl.TravelMate',
clientId: 'be.devdayronvl.TravelMate.service',
redirectUri: Uri.parse(
'https://your-project-id.firebaseapp.com/__/auth/handler',
'https://travelmate-a47f5.firebaseapp.com/__/auth/handler',
),
),
);
@@ -247,24 +264,49 @@ class AuthService {
return userCredential;
} on SignInWithAppleException catch (e) {
_errorService.logError('Apple Sign-In error: $e', StackTrace.current);
_errorService.showError(
message: 'La connexion avec Apple a échoué. Veuillez réessayer.',
);
throw FirebaseAuthException(
code: 'ERROR_APPLE_SIGNIN_FAILED',
message: 'Apple Sign-In failed: ${e.toString()}',
message: 'Apple Sign-In failed',
);
} on FirebaseAuthException catch (e) {
_errorService.logError(
'Firebase error during Apple Sign-In: $e',
StackTrace.current,
);
if (e.code == 'account-exists-with-different-credential') {
_errorService.showError(
message:
'Un compte existe déjà avec cette adresse email. Veuillez vous connecter avec la méthode utilisée précédemment.',
);
} else if (e.code == 'invalid-credential') {
_errorService.showError(
message: 'Les informations de connexion sont invalides.',
);
} else if (e.code == 'user-disabled') {
_errorService.showError(
message: 'Ce compte utilisateur a été désactivé.',
);
} else {
_errorService.showError(
message:
'Une erreur est survenue lors de la connexion avec Apple. Veuillez réessayer plus tard.',
);
}
rethrow;
} catch (e) {
_errorService.logError(
'Unknown error during Apple Sign-In: $e',
StackTrace.current,
);
_errorService.showError(
message: 'Une erreur inattendue est survenue. Veuillez réessayer.',
);
throw FirebaseAuthException(
code: 'ERROR_APPLE_SIGNIN_UNKNOWN',
message: 'Unknown error during Apple Sign-In: $e',
message: 'Unknown error during Apple Sign-In',
);
}
}

View File

@@ -9,8 +9,8 @@ class MessageService {
MessageService({
required MessageRepository messageRepository,
ErrorService? errorService,
}) : _messageRepository = messageRepository,
_errorService = errorService ?? ErrorService();
}) : _messageRepository = messageRepository,
_errorService = errorService ?? ErrorService();
// Envoyer un message
Future<void> sendMessage({
@@ -30,12 +30,13 @@ class MessageService {
senderId: senderId,
senderName: senderName,
);
} catch (e) {
} catch (e, stackTrace) {
_errorService.logError(
'message_service.dart',
'Erreur lors de l\'envoi du message: $e',
stackTrace,
);
rethrow;
throw Exception('Impossible d\'envoyer le message');
}
}
@@ -43,12 +44,13 @@ class MessageService {
Stream<List<Message>> getMessagesStream(String groupId) {
try {
return _messageRepository.getMessagesStream(groupId);
} catch (e) {
} catch (e, stackTrace) {
_errorService.logError(
'message_service.dart',
'Erreur lors de la récupération des messages: $e',
stackTrace,
);
rethrow;
throw Exception('Impossible de récupérer les messages');
}
}
@@ -62,12 +64,13 @@ class MessageService {
groupId: groupId,
messageId: messageId,
);
} catch (e) {
} catch (e, stackTrace) {
_errorService.logError(
'message_service.dart',
'Erreur lors de la suppression du message: $e',
stackTrace,
);
rethrow;
throw Exception('Impossible de supprimer le message');
}
}
@@ -87,12 +90,13 @@ class MessageService {
messageId: messageId,
newText: newText.trim(),
);
} catch (e) {
} catch (e, stackTrace) {
_errorService.logError(
'message_service.dart',
'Erreur lors de la modification du message: $e',
stackTrace,
);
rethrow;
throw Exception('Impossible de modifier le message');
}
}
@@ -110,12 +114,13 @@ class MessageService {
userId: userId,
reaction: reaction,
);
} catch (e) {
} catch (e, stackTrace) {
_errorService.logError(
'message_service.dart',
'Erreur lors de l\'ajout de la réaction: $e',
stackTrace,
);
rethrow;
throw Exception('Impossible d\'ajouter la réaction');
}
}
@@ -131,12 +136,13 @@ class MessageService {
messageId: messageId,
userId: userId,
);
} catch (e) {
} catch (e, stackTrace) {
_errorService.logError(
'message_service.dart',
'Erreur lors de la suppression de la réaction: $e',
stackTrace,
);
rethrow;
throw Exception('Impossible de supprimer la réaction');
}
}
}