getUserModel method
The UserModel currently stored in secure storage, or null if absent,
empty, or corrupted.
Corrupted data is cleared automatically to prevent repeated failures.
Implementation
Future<UserModel?> getUserModel() async {
try {
final String? raw = await storage.read(key: _userModelKey);
if (raw == null || raw.isEmpty) return null;
final Object? decoded = json.decode(raw);
if (decoded is! Map<String, dynamic>) {
await deleteUserModelData();
return null;
}
final UserModel? userModel = UserModel.tryFromJson(decoded);
if (userModel == null || userModel.isEmpty) {
await deleteUserModelData();
return null;
}
return userModel;
} catch (e, st) {
getIt<AppLogger>().warn(
'[SecureStorage] Failed to read user model. Clearing stored user model.',
error: e,
stackTrace: st,
extras: const <String, Object?>{'key': '_userModelKey', 'source': 'SecureStorage.getUserModel'},
);
await deleteUserModelData();
return null;
}
}