TF-1289: [Domain] Add GetSubscription in reposiroty

This commit is contained in:
HuyNguyen
2022-12-29 16:41:39 +07:00
committed by Dat Vu
parent bb1a3cc97e
commit f71999ddfc
4 changed files with 49 additions and 1 deletions
@@ -8,4 +8,4 @@ class NotFoundEmailDeliveryStateException implements Exception {}
class NotFoundFirebaseSubscriptionException implements Exception {}
class NotFoundDeviceIdException implements Exception {}
class NotFoundSubscriptionException implements Exception {}
@@ -28,4 +28,6 @@ abstract class FCMRepository {
Future<FirebaseSubscription> getFirebaseSubscriptionByDeviceId(String deviceId);
Future<FirebaseSubscription> registerNewToken(RegisterNewTokenRequest newTokenRequest);
Future<FCMSubscription> getSubscription();
}
@@ -0,0 +1,25 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:tmail_ui_user/features/push_notification/domain/model/fcm_subscription.dart';
class GetFCMSubscriptionLocalLoading extends UIState {}
class GetFCMSubscriptionLocalSuccess extends UIState {
final FCMSubscription fcmSubscription;
GetFCMSubscriptionLocalSuccess(this.fcmSubscription);
@override
List<Object> get props => [fcmSubscription];
}
class GetFCMSubscriptionLocalFailure extends FeatureFailure {
final dynamic exception;
GetFCMSubscriptionLocalFailure(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';
import 'package:dartz/dartz.dart';
import 'package:tmail_ui_user/features/push_notification/domain/repository/fcm_repository.dart';
import 'package:tmail_ui_user/features/push_notification/domain/state/get_fcm_subscription_local.dart';
class GetFCMSubscriptionLocalInteractor {
final FCMRepository _fcmRepository;
GetFCMSubscriptionLocalInteractor(this._fcmRepository);
Stream<Either<Failure, Success>> execute() async* {
try {
yield Right<Failure, Success>(GetFCMSubscriptionLocalLoading());
final _subscription = await _fcmRepository.getSubscription();
yield Right<Failure, Success>(GetFCMSubscriptionLocalSuccess(_subscription));
} catch (e) {
yield Left<Failure, Success>(GetFCMSubscriptionLocalFailure(e));
}
}
}