Use custom mapCapabilitiesConverter to apply some outside capabilities
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:tmail_ui_user/features/home/data/datasource/session_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/home/data/network/session_api.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart';
|
||||
|
||||
class SessionDataSourceImpl extends SessionDataSource {
|
||||
@@ -13,7 +14,9 @@ class SessionDataSourceImpl extends SessionDataSource {
|
||||
@override
|
||||
Future<Session> getSession() {
|
||||
return Future.sync(() async {
|
||||
return await _sessionAPI.getSession();
|
||||
return await _sessionAPI.getSession(
|
||||
converters: SessionExtensions.customMapCapabilitiesConverter,
|
||||
);
|
||||
}).catchError(_exceptionThrower.throwException);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:jmap_dart_client/http/converter/capabilities_converter.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:tmail_ui_user/features/home/data/model/session_hive_obj.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||
|
||||
extension SessionHiveObjExtension on SessionHiveObj {
|
||||
Session toSession() => Session.fromJson(jsonDecode(value));
|
||||
Session toSession() => Session.fromJson(
|
||||
jsonDecode(value),
|
||||
converter: CapabilitiesConverter.defaultConverter
|
||||
..addConverters(SessionExtensions.customMapCapabilitiesConverter),
|
||||
);
|
||||
}
|
||||
@@ -15,6 +15,10 @@ class SessionAPI {
|
||||
Future<Session> getSession({Map<CapabilityIdentifier, CapabilityProperties Function(Map<String, dynamic>)>? converters}) async {
|
||||
final getSessionBuilder = GetSessionBuilder(httpClient);
|
||||
|
||||
if (converters != null) {
|
||||
getSessionBuilder.registerCapabilityConverter(converters);
|
||||
}
|
||||
|
||||
final result = await getSessionBuilder.build().execute();
|
||||
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user