Skip to content

Commit 5f19380

Browse files
committed
TF-3372 Adding onProgressController to interactor layer
1 parent 83a7979 commit 5f19380

File tree

2 files changed

+36
-4
lines changed

2 files changed

+36
-4
lines changed

lib/features/thread/domain/usecases/empty_spam_folder_interactor.dart

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:async';
2+
13
import 'package:core/presentation/state/failure.dart';
24
import 'package:core/presentation/state/success.dart';
35
import 'package:dartz/dartz.dart';
@@ -12,10 +14,24 @@ class EmptySpamFolderInteractor {
1214

1315
EmptySpamFolderInteractor(this.threadRepository);
1416

15-
Stream<Either<Failure, Success>> execute(Session session, AccountId accountId, MailboxId spamMailboxId) async* {
17+
Stream<Either<Failure, Success>> execute(
18+
Session session,
19+
AccountId accountId,
20+
MailboxId spamMailboxId,
21+
int totalEmails,
22+
StreamController<Either<Failure, Success>> onProgressController
23+
) async* {
1624
try {
1725
yield Right<Failure, Success>(EmptySpamFolderLoading());
18-
final emailIdDeleted = await threadRepository.emptySpamFolder(session, accountId, spamMailboxId);
26+
onProgressController.add(Right(EmptySpamFolderLoading()));
27+
28+
final emailIdDeleted = await threadRepository.emptySpamFolder(
29+
session,
30+
accountId,
31+
spamMailboxId,
32+
totalEmails,
33+
onProgressController
34+
);
1935
yield Right<Failure, Success>(EmptySpamFolderSuccess(emailIdDeleted));
2036
} catch (e) {
2137
yield Left<Failure, Success>(EmptySpamFolderFailure(e));

lib/features/thread/domain/usecases/empty_trash_folder_interactor.dart

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import 'dart:async';
2+
13
import 'package:core/presentation/state/failure.dart';
24
import 'package:core/presentation/state/success.dart';
35
import 'package:dartz/dartz.dart';
@@ -12,10 +14,24 @@ class EmptyTrashFolderInteractor {
1214

1315
EmptyTrashFolderInteractor(this.threadRepository);
1416

15-
Stream<Either<Failure, Success>> execute(Session session, AccountId accountId, MailboxId trashMailboxId) async* {
17+
Stream<Either<Failure, Success>> execute(
18+
Session session,
19+
AccountId accountId,
20+
MailboxId trashMailboxId,
21+
int totalEmails,
22+
StreamController<Either<Failure, Success>> onProgressController
23+
) async* {
1624
try {
1725
yield Right<Failure, Success>(EmptyTrashFolderLoading());
18-
final emailIdDeleted = await threadRepository.emptyTrashFolder(session, accountId, trashMailboxId);
26+
onProgressController.add(Right(EmptyTrashFolderLoading()));
27+
28+
final emailIdDeleted = await threadRepository.emptyTrashFolder(
29+
session,
30+
accountId,
31+
trashMailboxId,
32+
totalEmails,
33+
onProgressController
34+
);
1935
yield Right<Failure, Success>(EmptyTrashFolderSuccess(emailIdDeleted,));
2036
} catch (e) {
2137
yield Left<Failure, Success>(EmptyTrashFolderFailure(e));

0 commit comments

Comments
 (0)