Cache Linagora Ecosystem in controller for Scribe
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/api_url_linagora_ecosystem.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/app_linagora_ecosystem.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/converters/linagora_ecosystem_converter.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/linagora_ecosystem_identifier.dart';
|
||||
@@ -44,4 +45,7 @@ extension LinagoraEcosystemExtension on LinagoraEcosystem {
|
||||
List<AppLinagoraEcosystem> get listAppLinagoraEcosystemOnAndroid {
|
||||
return listAppLinagoraEcosystem.where((app) => app.isAppAndroidEnabled).toList();
|
||||
}
|
||||
|
||||
String? get scribePromptUrl =>
|
||||
(properties?[LinagoraEcosystemIdentifier.scribePromptUrl] as ApiUrlLinagoraEcosystem?)?.value;
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/linagora_ecosystem.dart';
|
||||
|
||||
abstract class LinagoraEcosystemRepository {
|
||||
Future<String?> getScribePromptUrl(String baseUrl);
|
||||
Future<LinagoraEcosystem> getLinagoraEcosystem(String baseUrl);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/linagora_ecosystem.dart';
|
||||
|
||||
class GetLinagoraEcosystemSuccess extends Success {
|
||||
final LinagoraEcosystem linagoraEcosystem;
|
||||
|
||||
GetLinagoraEcosystemSuccess(this.linagoraEcosystem);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [linagoraEcosystem];
|
||||
}
|
||||
|
||||
class GetLinagoraEcosystemFailure extends Failure {
|
||||
final dynamic exception;
|
||||
|
||||
GetLinagoraEcosystemFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [exception];
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
|
||||
class GetScribePromptUrlSuccess extends Success {
|
||||
final String? promptUrl;
|
||||
|
||||
GetScribePromptUrlSuccess(this.promptUrl);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [promptUrl];
|
||||
}
|
||||
|
||||
class GetScribePromptUrlFailure extends Failure {
|
||||
final dynamic exception;
|
||||
|
||||
GetScribePromptUrlFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [exception];
|
||||
}
|
||||
+6
-6
@@ -1,20 +1,20 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/linagora_ecosystem_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_scribe_prompt_url_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_linagora_ecosystem_state.dart';
|
||||
|
||||
class GetScribePromptUrlInteractor {
|
||||
class GetLinagoraEcosystemInteractor {
|
||||
final LinagoraEcosystemRepository _linagoraEcosystemRepository;
|
||||
|
||||
GetScribePromptUrlInteractor(this._linagoraEcosystemRepository);
|
||||
GetLinagoraEcosystemInteractor(this._linagoraEcosystemRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(String baseUrl) async* {
|
||||
try {
|
||||
final promptUrl = await _linagoraEcosystemRepository.getScribePromptUrl(baseUrl);
|
||||
final linagoraEcosystem = await _linagoraEcosystemRepository.getLinagoraEcosystem(baseUrl);
|
||||
|
||||
yield Right(GetScribePromptUrlSuccess(promptUrl));
|
||||
yield Right(GetLinagoraEcosystemSuccess(linagoraEcosystem));
|
||||
} catch (e) {
|
||||
yield Left(GetScribePromptUrlFailure(e));
|
||||
yield Left(GetLinagoraEcosystemFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user