diff --git a/lib/core/errors/auth_exceptions.dart b/lib/core/errors/auth_exceptions.dart index 8c8b7da..d4d3cae 100644 --- a/lib/core/errors/auth_exceptions.dart +++ b/lib/core/errors/auth_exceptions.dart @@ -146,6 +146,19 @@ class AuthDisabledException extends AuthException { ); } +/// Exception thrown for unknown authentication errors +class UnknownAuthException extends AuthException { + const UnknownAuthException({ + String message = 'An unknown authentication error occurred', + String? code, + dynamic originalError, + }) : super( + message: message, + code: code ?? 'UNKNOWN_ERROR', + originalError: originalError, + ); +} + /// Utility class for converting Supabase errors to custom exceptions /// /// Provides a centralized way to map Supabase error responses @@ -263,7 +276,7 @@ class AuthExceptionFactory { } // Fallback for unknown errors - return AuthException( + return UnknownAuthException( message: _extractUserFriendlyMessage(errorMessage) ?? 'Authentication failed', code: errorCode, originalError: error, diff --git a/lib/features/authentication/data/models/auth_user.dart b/lib/features/authentication/data/models/auth_user.dart index f8afe0a..61a8b23 100644 --- a/lib/features/authentication/data/models/auth_user.dart +++ b/lib/features/authentication/data/models/auth_user.dart @@ -45,11 +45,11 @@ class AuthUser { return AuthUser( id: user.id, email: user.email ?? '', - createdAt: user.createdAt ?? DateTime.now(), + createdAt: DateTime.tryParse(user.createdAt.toString()) ?? DateTime.now(), emailVerified: user.emailConfirmedAt != null, displayName: user.userMetadata?['display_name'] as String?, avatarUrl: user.userMetadata?['avatar_url'] as String?, - lastSignInAt: user.lastSignInAt, + lastSignInAt: DateTime.tryParse(user.lastSignInAt.toString()), ); } diff --git a/lib/features/authentication/domain/repositories/auth_repository.dart b/lib/features/authentication/domain/repositories/auth_repository.dart index c097659..1d1be06 100644 --- a/lib/features/authentication/domain/repositories/auth_repository.dart +++ b/lib/features/authentication/domain/repositories/auth_repository.dart @@ -1,5 +1,5 @@ import '../../data/models/auth_user.dart'; -import '../../../core/errors/auth_exceptions.dart'; +import '../../../../core/errors/auth_exceptions.dart'; /// Authentication repository interface defining all authentication operations. ///