TF-1363: [Domain] [Domain] Store, Get, Delete spamReportState in UseCase
This commit is contained in:
+23
-6
@@ -1,6 +1,23 @@
|
||||
FIREBASE_ANDROID_API_KEY=example
|
||||
FIREBASE_ANDROID_APP_ID=example
|
||||
FIREBASE_ANDROID_MESSAGING_SENDER_ID=example
|
||||
FIREBASE_ANDROID_PROJECT_ID=example
|
||||
FIREBASE_ANDROID_DATABASE_URL=https://example.com
|
||||
FIREBASE_ANDROID_STORAGE_BUCKET=example.com
|
||||
FIREBASE_ANDROID_API_KEY=AIzaSyDPn3T4BMShrcedtqzA-8Lh3Fsm1EGB7S8
|
||||
FIREBASE_ANDROID_APP_ID=1:611786135906:android:6fa64d94eb8f8603e3743b
|
||||
FIREBASE_ANDROID_MESSAGING_SENDER_ID=611786135906
|
||||
FIREBASE_ANDROID_PROJECT_ID=fir-jmap-poc
|
||||
FIREBASE_ANDROID_DATABASE_URL=https://fir-jmap-poc-default-rtdb.asia-southeast1.firebasedatabase.app
|
||||
FIREBASE_ANDROID_STORAGE_BUCKET=fir-jmap-poc.appspot.com
|
||||
|
||||
FIREBASE_IOS_API_KEY=AIzaSyA_fAC-6rVLsQtj8AXxRRYjwsOHCKPTm6w
|
||||
FIREBASE_IOS_APP_ID=1:611786135906:ios:d8b0899dc058dd2ae3743b
|
||||
FIREBASE_IOS_MESSAGING_SENDER_ID=611786135906
|
||||
FIREBASE_IOS_PROJECT_ID=fir-jmap-poc
|
||||
FIREBASE_IOS_DATABASE_URL=https://fir-jmap-poc-default-rtdb.asia-southeast1.firebasedatabase.app
|
||||
FIREBASE_IOS_STORAGE_BUCKET=fir-jmap-poc.appspot.com
|
||||
FIREBASE_IOS_CLIENT_ID=611786135906-2nqn5c537eer6c95rcujmlfmldbkqfqb.apps.googleusercontent.com
|
||||
FIREBASE_IOS_BUNDLE_ID=com.linagora.ios.teammail
|
||||
|
||||
FIREBASE_WEB_API_KEY=AIzaSyABpxntIXA2u_uFFMT4wvHYMgVm7UZPMrM
|
||||
FIREBASE_WEB_APP_ID=1:611786135906:web:22d98cfd47b4fddde3743b
|
||||
FIREBASE_WEB_MESSAGING_SENDER_ID=611786135906
|
||||
FIREBASE_WEB_PROJECT_ID=fir-jmap-poc
|
||||
FIREBASE_WEB_DATABASE_URL=https://fir-jmap-poc-default-rtdb.asia-southeast1.firebasedatabase.app
|
||||
FIREBASE_WEB_STORAGE_BUCKET=fir-jmap-poc.appspot.com
|
||||
FIREBASE_WEB_AUTH_DOMAIN=fir-jmap-poc.firebaseapp.com
|
||||
@@ -1,4 +1,4 @@
|
||||
SERVER_URL=http://localhost/
|
||||
SERVER_URL=https://gateway.upn.integration-open-paas.org
|
||||
DOMAIN_REDIRECT_URL=http://localhost:3000
|
||||
WEB_OIDC_CLIENT_ID=teammail-web
|
||||
APP_GRID_AVAILABLE=supported
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart';
|
||||
|
||||
@@ -39,4 +40,19 @@ class SpamReportRepositoryImpl extends SpamReportRepository {
|
||||
mailboxFilterCondition: mailboxFilterCondition,
|
||||
limit: limit);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<SpamReportState> getSpamReportState() {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeSpamReportState(SpamReportState spamReportState) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> deletestoreSpamReportState() {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
enum SpamReportState {
|
||||
enabled,
|
||||
disabled,
|
||||
}
|
||||
|
||||
extension SpamReportStateExtension on SpamReportState {
|
||||
|
||||
String get keyValue {
|
||||
switch(this) {
|
||||
case SpamReportState.enabled:
|
||||
return 'enabled';
|
||||
case SpamReportState.disabled:
|
||||
return 'disabled';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart';
|
||||
|
||||
abstract class SpamReportRepository {
|
||||
@@ -17,4 +18,10 @@ abstract class SpamReportRepository {
|
||||
UnsignedInt? limit
|
||||
}
|
||||
);
|
||||
|
||||
Future<SpamReportState> getSpamReportState();
|
||||
|
||||
Future<void> storeSpamReportState(SpamReportState spamReportState);
|
||||
|
||||
Future<void> deletestoreSpamReportState();
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class DeleteLastTimeDismissedSpamReportedLoading extends UIState {}
|
||||
|
||||
class DeleteLastTimeDismissedSpamReportedSuccess extends UIState {
|
||||
|
||||
DeleteLastTimeDismissedSpamReportedSuccess();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class DeleteLastTimeDismissedSpamReportedFailure extends FeatureFailure {
|
||||
final dynamic exception;
|
||||
|
||||
DeleteLastTimeDismissedSpamReportedFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object> get props => [exception];
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class DeleteSpamReportStateLoading extends UIState {}
|
||||
|
||||
class DeleteSpamReportStateSuccess extends UIState {
|
||||
|
||||
DeleteSpamReportStateSuccess();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class DeleteSpamReportStateFailure extends FeatureFailure {
|
||||
final dynamic exception;
|
||||
|
||||
DeleteSpamReportStateFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object> get props => [exception];
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
||||
|
||||
class GetSpamReportStateLoading extends UIState {}
|
||||
|
||||
class GetSpamReportStateSuccess extends UIState {
|
||||
final SpamReportState spamReportState;
|
||||
|
||||
GetSpamReportStateSuccess(this.spamReportState);
|
||||
|
||||
@override
|
||||
List<Object> get props => [spamReportState];
|
||||
}
|
||||
|
||||
class GetSpamReportStateFailure extends FeatureFailure {
|
||||
final dynamic exception;
|
||||
|
||||
GetSpamReportStateFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object> get props => [exception];
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class StoreSpamReportStateLoading extends UIState {}
|
||||
|
||||
class StoreSpamReportStateSuccess extends UIState {
|
||||
|
||||
StoreSpamReportStateSuccess();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class StoreSpamReportStateFailure extends FeatureFailure {
|
||||
final dynamic exception;
|
||||
|
||||
StoreSpamReportStateFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object> get props => [exception];
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
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/mailbox_dashboard/domain/repository/spam_report_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/delete_last_time_dismissed_spam_reported_state.dart';
|
||||
|
||||
class DeleteLastTimeDismissedSpamReportedInteractor {
|
||||
final SpamReportRepository _spamReportRepository;
|
||||
|
||||
DeleteLastTimeDismissedSpamReportedInteractor(this._spamReportRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute() async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(DeleteLastTimeDismissedSpamReportedLoading());
|
||||
await _spamReportRepository.deleteLastTimeDismissedSpamReported();
|
||||
yield Right<Failure, Success>(DeleteLastTimeDismissedSpamReportedSuccess());
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(DeleteLastTimeDismissedSpamReportedFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
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/mailbox_dashboard/domain/repository/spam_report_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/delete_spam_report_state.dart';
|
||||
|
||||
class DeleteSpamReportStateInteractor {
|
||||
final SpamReportRepository _spamReportRepository;
|
||||
|
||||
DeleteSpamReportStateInteractor(this._spamReportRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute() async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(DeleteSpamReportStateLoading());
|
||||
await _spamReportRepository.deletestoreSpamReportState();
|
||||
yield Right<Failure, Success>(DeleteSpamReportStateSuccess());
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(DeleteSpamReportStateFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
|
||||
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/mailbox_dashboard/domain/repository/spam_report_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_report_state.dart';
|
||||
|
||||
class StoreSpamReportStateInteractor {
|
||||
final SpamReportRepository _spamReportRepository;
|
||||
|
||||
StoreSpamReportStateInteractor(this._spamReportRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute() async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(GetSpamReportStateLoading());
|
||||
final spamReportState = await _spamReportRepository.getSpamReportState();
|
||||
yield Right<Failure, Success>(GetSpamReportStateSuccess(spamReportState));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(GetSpamReportStateFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
|
||||
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/mailbox_dashboard/domain/model/spam_report_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_spam_report_state.dart';
|
||||
|
||||
class StoreSpamReportStateInteractor {
|
||||
final SpamReportRepository _spamReportRepository;
|
||||
|
||||
StoreSpamReportStateInteractor(this._spamReportRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(SpamReportState spamReportState) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(StoreSpamReportStateLoading());
|
||||
await _spamReportRepository.storeSpamReportState(spamReportState);
|
||||
yield Right<Failure, Success>(StoreSpamReportStateSuccess());
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(StoreSpamReportStateFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user