TF-4068 Change profile (set identity as default) in setting
This commit is contained in:
@@ -10,6 +10,7 @@ class EditDefaultIdentityRequest extends EditIdentityRequest {
|
||||
required super.identityId,
|
||||
required super.identityRequest,
|
||||
required super.isDefaultIdentity,
|
||||
required super.isSetAsDefault,
|
||||
this.oldDefaultIdentityIds,
|
||||
super.publicAssetsInIdentityArguments
|
||||
});
|
||||
|
||||
@@ -10,19 +10,33 @@ class EditIdentityRequest with EquatableMixin {
|
||||
final IdentityId identityId;
|
||||
final bool isDefaultIdentity;
|
||||
final PublicAssetsInIdentityArguments? publicAssetsInIdentityArguments;
|
||||
final bool isSetAsDefault;
|
||||
|
||||
EditIdentityRequest({
|
||||
required this.identityId,
|
||||
required this.identityRequest,
|
||||
this.isDefaultIdentity = false,
|
||||
this.isSetAsDefault = false,
|
||||
this.publicAssetsInIdentityArguments
|
||||
});
|
||||
|
||||
factory EditIdentityRequest.fromIdentityWithoutPublicAssets(
|
||||
Identity identity,
|
||||
) {
|
||||
return EditIdentityRequest(
|
||||
identityId: identity.id!,
|
||||
identityRequest: identity.toIdentityRequest(),
|
||||
isDefaultIdentity: true,
|
||||
isSetAsDefault: true,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
identityId,
|
||||
identityRequest,
|
||||
isDefaultIdentity,
|
||||
publicAssetsInIdentityArguments
|
||||
publicAssetsInIdentityArguments,
|
||||
isSetAsDefault,
|
||||
];
|
||||
}
|
||||
@@ -2,12 +2,19 @@ import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/edit_identity_state.dart';
|
||||
|
||||
class EditDefaultIdentityLoading extends UIState {}
|
||||
class EditDefaultIdentityLoading extends LoadingState {
|
||||
final bool isSetAsDefault;
|
||||
|
||||
EditDefaultIdentityLoading({this.isSetAsDefault = false});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [isSetAsDefault];
|
||||
}
|
||||
|
||||
class EditDefaultIdentitySuccess extends EditIdentitySuccess {
|
||||
EditDefaultIdentitySuccess(
|
||||
super.identityId,
|
||||
{super.publicAssetsInIdentityArguments});
|
||||
{super.publicAssetsInIdentityArguments, super.isSetAsDefault = false});
|
||||
}
|
||||
|
||||
class EditDefaultIdentityFailure extends FeatureFailure {
|
||||
|
||||
@@ -8,13 +8,20 @@ class EditIdentityLoading extends UIState {}
|
||||
class EditIdentitySuccess extends UIState {
|
||||
final IdentityId identityId;
|
||||
final PublicAssetsInIdentityArguments? publicAssetsInIdentityArguments;
|
||||
final bool isSetAsDefault;
|
||||
|
||||
EditIdentitySuccess(
|
||||
this.identityId,
|
||||
{this.publicAssetsInIdentityArguments});
|
||||
this.identityId, {
|
||||
this.publicAssetsInIdentityArguments,
|
||||
this.isSetAsDefault = false,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [identityId, publicAssetsInIdentityArguments];
|
||||
List<Object?> get props => [
|
||||
identityId,
|
||||
publicAssetsInIdentityArguments,
|
||||
isSetAsDefault,
|
||||
];
|
||||
}
|
||||
|
||||
class EditIdentityFailure extends FeatureFailure {
|
||||
|
||||
@@ -27,7 +27,11 @@ class EditDefaultIdentityInteractor {
|
||||
EditIdentityRequest editIdentityRequest
|
||||
) async* {
|
||||
try {
|
||||
yield Right(EditDefaultIdentityLoading());
|
||||
yield Right(
|
||||
EditDefaultIdentityLoading(
|
||||
isSetAsDefault: editIdentityRequest.isSetAsDefault,
|
||||
),
|
||||
);
|
||||
|
||||
final defaultIdentities = await _getDefaultIdentities(session, accountId);
|
||||
_removeEditIdentityFromDefaultIdentities(defaultIdentities, editIdentityRequest.identityId);
|
||||
@@ -36,6 +40,7 @@ class EditDefaultIdentityInteractor {
|
||||
identityId: editIdentityRequest.identityId,
|
||||
identityRequest: editIdentityRequest.identityRequest,
|
||||
isDefaultIdentity: editIdentityRequest.isDefaultIdentity,
|
||||
isSetAsDefault: editIdentityRequest.isSetAsDefault,
|
||||
publicAssetsInIdentityArguments: editIdentityRequest.publicAssetsInIdentityArguments,
|
||||
oldDefaultIdentityIds: defaultIdentities
|
||||
?.map((identity) => identity.id!)
|
||||
@@ -45,7 +50,9 @@ class EditDefaultIdentityInteractor {
|
||||
yield result
|
||||
? Right(EditDefaultIdentitySuccess(
|
||||
editDefaultRequest.identityId,
|
||||
publicAssetsInIdentityArguments: editDefaultRequest.publicAssetsInIdentityArguments))
|
||||
publicAssetsInIdentityArguments: editDefaultRequest.publicAssetsInIdentityArguments,
|
||||
isSetAsDefault: editDefaultRequest.isSetAsDefault,
|
||||
))
|
||||
: Left(EditDefaultIdentityFailure(null));
|
||||
} catch (exception) {
|
||||
yield Left(EditDefaultIdentityFailure(exception));
|
||||
|
||||
Reference in New Issue
Block a user