feat: Implement get label changes

This commit is contained in:
dab246
2025-12-02 09:45:29 +07:00
committed by Dat H. Pham
parent 73134d2833
commit 987ea410c5
6 changed files with 314 additions and 23 deletions
@@ -0,0 +1,41 @@
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;
}
}