Bon checkpoint + refactoring
This commit is contained in:
@@ -14,6 +14,8 @@ import 'package:provider/provider.dart';
|
||||
import '../../../core/errors/exceptions.dart';
|
||||
import '../../../core/theme/theme_provider.dart';
|
||||
import '../../../data/datasources/event_remote_data_source.dart';
|
||||
import '../../../data/providers/user_provider.dart';
|
||||
import '../../../domain/entities/user.dart';
|
||||
import '../signup/SignUpScreen.dart';
|
||||
|
||||
/// L'écran de connexion où les utilisateurs peuvent s'authentifier.
|
||||
@@ -102,30 +104,41 @@ class _LoginScreenState extends State<LoginScreen>
|
||||
_formKey.currentState!.save(); // Sauvegarde des données saisies
|
||||
|
||||
try {
|
||||
_btnController.start(); // Démarre l'animation de chargement du bouton
|
||||
_btnController.start();
|
||||
debugPrint("[LOG] Appel à l'API pour authentifier l'utilisateur.");
|
||||
|
||||
// Appel à l'API pour authentifier l'utilisateur
|
||||
final UserModel user = await _userRemoteDataSource.authenticateUser(_email, _password);
|
||||
|
||||
// Validation de l'ID utilisateur
|
||||
if (user.userId.isNotEmpty) {
|
||||
debugPrint("[LOG] Utilisateur authentifié avec succès. ID: ${user.userId}");
|
||||
|
||||
// Sauvegarde des informations utilisateur
|
||||
await _secureStorage.saveUserId(user.userId);
|
||||
await _preferencesHelper.saveUserName(user.nom);
|
||||
await _preferencesHelper.saveUserLastName(user.prenoms);
|
||||
await _preferencesHelper.saveUserName(user.userLastName);
|
||||
await _preferencesHelper.saveUserLastName(user.userFirstName);
|
||||
|
||||
// Met à jour le `UserProvider` avec les informations utilisateur authentifiées
|
||||
final userProvider = Provider.of<UserProvider>(context, listen: false);
|
||||
userProvider.setUser(User(
|
||||
userId: user.userId,
|
||||
userLastName: user.userLastName,
|
||||
userFirstName: user.userFirstName,
|
||||
email: user.email,
|
||||
motDePasse: 'motDePasseHashé',
|
||||
profileImageUrl: 'lib/assets/images/profile_picture.png',
|
||||
eventsCount: user.eventsCount ?? 0,
|
||||
friendsCount: user.friendsCount ?? 0,
|
||||
postsCount: user.postsCount ?? 0,
|
||||
visitedPlacesCount: user.visitedPlacesCount ?? 0,
|
||||
));
|
||||
|
||||
_showToast("Connexion réussie !");
|
||||
// Redirection vers l'écran d'accueil
|
||||
Navigator.pushReplacement(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => HomeScreen(
|
||||
userId: user.userId,
|
||||
userName: user.nom,
|
||||
userLastName: user.prenoms,
|
||||
userFirstName: user.userFirstName,
|
||||
userLastName: user.userLastName,
|
||||
userProfileImage: 'lib/assets/images/profile_picture.png',
|
||||
eventRemoteDataSource: EventRemoteDataSource(http.Client()),
|
||||
),
|
||||
@@ -136,25 +149,17 @@ class _LoginScreenState extends State<LoginScreen>
|
||||
_showToast("Erreur : ID utilisateur manquant.");
|
||||
}
|
||||
} catch (e) {
|
||||
// Gestion des erreurs spécifiques et log de chaque type d'erreur
|
||||
if (e is ServerExceptionWithMessage) {
|
||||
debugPrint("[ERROR] Erreur serveur : ${e.message}");
|
||||
_showToast("Erreur serveur : ${e.message}");
|
||||
} else if (e is UnauthorizedException) {
|
||||
debugPrint("[ERROR] Erreur d'authentification : ${e.message}");
|
||||
_showToast("Erreur : ${e.message}");
|
||||
} else {
|
||||
debugPrint("[ERROR] Erreur lors de la connexion : $e");
|
||||
_showToast("Erreur lors de la connexion : ${e.toString()}");
|
||||
}
|
||||
_btnController.error(); // Affiche une erreur sur le bouton
|
||||
// Gestion des erreurs
|
||||
debugPrint("[ERROR] Erreur lors de la connexion : $e");
|
||||
_showToast("Erreur lors de la connexion : ${e.toString()}");
|
||||
_btnController.error();
|
||||
setState(() {
|
||||
_showErrorMessage = true;
|
||||
});
|
||||
} finally {
|
||||
_btnController.reset(); // Réinitialise l'état du bouton
|
||||
_btnController.reset();
|
||||
setState(() {
|
||||
_isSubmitting = false; // Réinitialise l'état de chargement
|
||||
_isSubmitting = false;
|
||||
});
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user