diff --git a/lib/data/datasources/attendance_remote_data_source.dart b/lib/data/datasources/attendance_remote_data_source.dart index bed6ba6..b2f78cc 100644 --- a/lib/data/datasources/attendance_remote_data_source.dart +++ b/lib/data/datasources/attendance_remote_data_source.dart @@ -79,6 +79,7 @@ class AttendanceRemoteDataSourceImpl implements AttendanceRemoteDataSource { if (e is ServerException || e is NetworkException) { rethrow; } + print('خطأ غير متوقع: $e'); throw ServerException(message: 'خطأ غير متوقع'); } } diff --git a/lib/data/dto/attendance_response_dto.dart b/lib/data/dto/attendance_response_dto.dart index 748f180..8c07ebc 100644 --- a/lib/data/dto/attendance_response_dto.dart +++ b/lib/data/dto/attendance_response_dto.dart @@ -15,10 +15,24 @@ class AttendanceResponseDto { final data = json['data']; return AttendanceResponseDto( - id: data['id'], - employeeId: data['employeeId'], - login: data['login'], - logout: data['logout'], + id: data['id']?.toString() ?? '', + employeeId: data['employeeId']?.toString() ?? '', + login: _parseDateTime(data['login']), + logout: _parseDateTime(data['logout']), ); } + + static DateTime? _parseDateTime(dynamic value) { + if (value == null) return null; + if (value is DateTime) return value; + if (value is String) { + try { + return DateTime.parse(value); + } catch (e) { + print('Error parsing date: $value - $e'); + return null; + } + } + return null; + } }