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: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/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/identities_response.dart';
@@ -108,13 +109,24 @@ class IdentityAPI {
..addUpdates({
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 setIdentityInvocation = requestBuilder.invocation(setIdentityMethod);
final response = await (requestBuilder
..usings(setIdentityMethod.requiredCapabilities))
..usings(capabilities))
.build()
.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 IdentityId identityId;
final bool isDefaultIdentity;
EditIdentityRequest({required this.identityId, required this.identityRequest});
EditIdentityRequest({
required this.identityId,
required this.identityRequest,
this.isDefaultIdentity = false
});
@override
List<Object?> get props => [identityId, identityRequest];
List<Object?> get props => [
identityId,
identityRequest,
isDefaultIdentity
];
}