Files
workavia-mail-front/lib/features/email_recovery/presentation/model/session_extension.dart
T

42 lines
1.4 KiB
Dart

import 'package:duration/duration.dart';
import 'package:email_recovery/email_recovery/capability_deleted_messages_vault.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:model/extensions/session_extension.dart';
extension SessionExtension on Session {
String getRestorationHorizonAsString() {
String restorationHorizon = 'restorationHorizon';
String defaultHorizon = "15 days";
return (getCapabilityProperties(accountId, capabilityDeletedMessagesVault)
?.props[0] as Map<String, dynamic>?)
?[restorationHorizon]
?? defaultHorizon;
}
Duration getRestorationHorizonAsDuration() {
try {
String horizonWithCorrectFormat = getRestorationHorizonAsString()
.replaceAll(" days", "d")
.replaceAll(" day", "d")
.replaceAll(" hours", "h")
.replaceAll(" hour", "h")
.replaceAll(" minutes", "m")
.replaceAll(" minute", "m")
.replaceAll(" seconds", "s")
.replaceAll(" second", "s")
.replaceAll(" milliseconds", "ms")
.replaceAll(" millisecond", "ms");
return parseDuration(horizonWithCorrectFormat, separator: ' ');
} catch (e) {
return const Duration(days: 15);
}
}
DateTime getRestorationHorizonAsDateTime() {
return DateTime.now().subtract(getRestorationHorizonAsDuration());
}
}