TF-2948 Apply new identity view for web
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
||||
|
||||
class IdentitySignature with EquatableMixin {
|
||||
final IdentityId identityId;
|
||||
final String signature;
|
||||
|
||||
IdentitySignature({required this.identityId, required this.signature});
|
||||
|
||||
IdentitySignature newSignature(String newSignature) {
|
||||
return IdentitySignature(
|
||||
identityId: identityId,
|
||||
signature: newSignature
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object> get props => [identityId, signature];
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import 'package:jmap_dart_client/jmap/identities/identity.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_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/identity_signature.dart';
|
||||
|
||||
abstract class IdentityRepository {
|
||||
Future<IdentitiesResponse> getAllIdentities(Session session, AccountId accountId, {Properties? properties});
|
||||
@@ -15,5 +16,5 @@ abstract class IdentityRepository {
|
||||
|
||||
Future<bool> editIdentity(Session session, AccountId accountId, EditIdentityRequest editIdentityRequest);
|
||||
|
||||
Future<String> transformHtmlSignature(String signature);
|
||||
Future<IdentitySignature> transformHtmlSignature(IdentitySignature identitySignature);
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class TransformHtmlSignatureLoading extends UIState {}
|
||||
|
||||
class TransformHtmlSignatureSuccess extends UIState {
|
||||
final String signature;
|
||||
|
||||
TransformHtmlSignatureSuccess(this.signature);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [signature];
|
||||
}
|
||||
|
||||
class TransformHtmlSignatureFailure extends FeatureFailure {
|
||||
|
||||
TransformHtmlSignatureFailure(exception) : super(exception: exception);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/identity_signature.dart';
|
||||
|
||||
class TransformListSignatureLoading extends LoadingState {}
|
||||
|
||||
class TransformListSignatureSuccess extends UIState {
|
||||
final List<IdentitySignature> identitySignatures;
|
||||
|
||||
TransformListSignatureSuccess(this.identitySignatures);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [identitySignatures];
|
||||
}
|
||||
|
||||
class TransformListSignatureFailure extends FeatureFailure {
|
||||
final List<IdentitySignature> identitySignatures;
|
||||
|
||||
TransformListSignatureFailure(exception, this.identitySignatures)
|
||||
: super(exception: exception);
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_de
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_identity_request.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/identity_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/create_new_default_identity_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/utils/identity_utils.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/identities/utils/identity_utils.dart';
|
||||
|
||||
class CreateNewDefaultIdentityInteractor {
|
||||
final IdentityRepository _identityRepository;
|
||||
|
||||
@@ -10,7 +10,7 @@ import 'package:tmail_ui_user/features/manage_account/domain/model/edit_default_
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/edit_identity_request.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/identity_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/edit_default_identity_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/utils/identity_utils.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/identities/utils/identity_utils.dart';
|
||||
|
||||
class EditDefaultIdentityInteractor {
|
||||
final IdentityRepository _identityRepository;
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/identity_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_identities_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/utils/identity_utils.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/identities/utils/identity_utils.dart';
|
||||
import 'package:tmail_ui_user/main/error/capability_validator.dart';
|
||||
|
||||
class GetAllIdentitiesInteractor {
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
import 'dart:core';
|
||||
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/identity_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/edit_identity_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/transform_html_signature_state.dart';
|
||||
|
||||
class TransformHtmlSignatureInteractor {
|
||||
final IdentityRepository _identityRepository;
|
||||
|
||||
TransformHtmlSignatureInteractor(this._identityRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(String signature) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(TransformHtmlSignatureLoading());
|
||||
final signatureUnescape = await _identityRepository.transformHtmlSignature(signature);
|
||||
yield Right<Failure, Success>(TransformHtmlSignatureSuccess(signatureUnescape));
|
||||
} catch (exception) {
|
||||
yield Left<Failure, Success>(EditIdentityFailure(exception));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
import 'dart:core';
|
||||
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/identity_signature.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/identity_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/transform_list_signature_state.dart';
|
||||
|
||||
class TransformListSignatureInteractor {
|
||||
final IdentityRepository _identityRepository;
|
||||
|
||||
TransformListSignatureInteractor(this._identityRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(List<IdentitySignature> identitySignatures) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(TransformListSignatureLoading());
|
||||
final newListIdentitySignature = await Future.wait(
|
||||
identitySignatures.map(_transformHtmlSignature),
|
||||
eagerError: true,
|
||||
);
|
||||
yield Right<Failure, Success>(TransformListSignatureSuccess(newListIdentitySignature));
|
||||
} catch (exception) {
|
||||
yield Left<Failure, Success>(TransformListSignatureFailure(exception, identitySignatures));
|
||||
}
|
||||
}
|
||||
|
||||
Future<IdentitySignature> _transformHtmlSignature(IdentitySignature identitySignature) async {
|
||||
try {
|
||||
return await _identityRepository.transformHtmlSignature(identitySignature);
|
||||
} catch (e) {
|
||||
logError('TransformListSignatureInteractor::_transformHtmlSignature:Exception = $e');
|
||||
return identitySignature;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user