Files
workavia-mail-front/lib/features/base/mixin/session_mixin.dart
T
2026-03-05 10:32:56 +07:00

42 lines
1.7 KiB
Dart

import 'dart:math' hide log;
import 'package:core/utils/app_logger.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
import 'package:jmap_dart_client/jmap/core/capability/core_capability.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:model/extensions/session_extension.dart';
import 'package:tmail_ui_user/main/error/capability_validator.dart';
mixin SessionMixin {
int getMaxObjectsInSetMethod(Session session, AccountId accountId) {
final coreCapability = session.getCapabilityProperties<CoreCapability>(
accountId,
CapabilityIdentifier.jmapCore,
);
final maxObjectsInSetMethod =
coreCapability?.maxObjectsInSet?.value.toInt() ??
CapabilityIdentifierExtension.defaultMaxObjectsInSet;
final minOfMaxObjectsInSetMethod = min(
maxObjectsInSetMethod,
CapabilityIdentifierExtension.defaultMaxObjectsInSet,
);
log('$runtimeType::_getMaxObjectsInSetMethod:minOfMaxObjectsInSetMethod = $minOfMaxObjectsInSetMethod');
return minOfMaxObjectsInSetMethod;
}
int getMaxObjectsInGetMethod(Session session, AccountId accountId) {
final maxObjectsInGetMethod =
session.getMaxObjectsInGet(accountId)?.value.toInt() ??
CapabilityIdentifierExtension.defaultMaxObjectsInGet;
final minOfMaxObjectsInGetMethod = min(
maxObjectsInGetMethod,
CapabilityIdentifierExtension.defaultMaxObjectsInGet,
);
log('$runtimeType::getMaxObjectsInGetMethod:minOfMaxObjectsInGetMethod = $minOfMaxObjectsInGetMethod');
return minOfMaxObjectsInGetMethod;
}
}