TF-1194 edit default identity: add repository layer

This commit is contained in:
sherlockvn
2023-01-17 14:41:36 +07:00
committed by Dat Vu
parent bd305a8f45
commit a84db37ea6
3 changed files with 47 additions and 3 deletions
@@ -12,6 +12,7 @@ import 'package:jmap_dart_client/jmap/jmap_request.dart';
import 'package:model/identity/identity_request_dto.dart'; import 'package:model/identity/identity_request_dto.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_default_identity_request.dart'; import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_default_identity_request.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_identity_request.dart'; import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_identity_request.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/edit_default_identity_request.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/edit_identity_request.dart'; import 'package:tmail_ui_user/features/manage_account/domain/model/edit_identity_request.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/identities_response.dart'; import 'package:tmail_ui_user/features/manage_account/domain/model/identities_response.dart';
@@ -109,12 +110,23 @@ class IdentityAPI {
editIdentityRequest.identityId.id : PatchObject(editIdentityRequest.identityRequest.toJson()) editIdentityRequest.identityId.id : PatchObject(editIdentityRequest.identityRequest.toJson())
}); });
var capabilities = setIdentityMethod.requiredCapabilities;
if (editIdentityRequest is EditDefaultIdentityRequest) {
for (var identityId in editIdentityRequest.oldDefaultIdentityIds ?? []) {
setIdentityMethod.addUpdates({
identityId.id: PatchObject(IdentityRequestDto(sortOrder: UnsignedInt(100)).toJson())
});
}
capabilities = setIdentityMethod.requiredCapabilitiesSupportSortOrder;
}
final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation()); final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation());
final setIdentityInvocation = requestBuilder.invocation(setIdentityMethod); final setIdentityInvocation = requestBuilder.invocation(setIdentityMethod);
final response = await (requestBuilder final response = await (requestBuilder
..usings(setIdentityMethod.requiredCapabilities)) ..usings(capabilities))
.build() .build()
.execute(); .execute();
@@ -0,0 +1,23 @@
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/edit_identity_request.dart';
class EditDefaultIdentityRequest extends EditIdentityRequest {
final List<IdentityId>? oldDefaultIdentityIds;
EditDefaultIdentityRequest({
required super.identityId,
required super.identityRequest,
required super.isDefaultIdentity,
this.oldDefaultIdentityIds
});
@override
List<Object?> get props => [
super.identityId,
super.identityRequest,
super.isDefaultIdentity,
oldDefaultIdentityIds
];
}
@@ -7,9 +7,18 @@ class EditIdentityRequest with EquatableMixin {
final IdentityRequestDto identityRequest; final IdentityRequestDto identityRequest;
final IdentityId identityId; final IdentityId identityId;
final bool isDefaultIdentity;
EditIdentityRequest({required this.identityId, required this.identityRequest}); EditIdentityRequest({
required this.identityId,
required this.identityRequest,
this.isDefaultIdentity = false
});
@override @override
List<Object?> get props => [identityId, identityRequest]; List<Object?> get props => [
identityId,
identityRequest,
isDefaultIdentity
];
} }