TF-439 Implement handle register new token when expired

This commit is contained in:
dab246
2022-11-29 16:24:04 +07:00
committed by Dat H. Pham
parent 92da2d5152
commit d5e093150f
10 changed files with 166 additions and 7 deletions
@@ -0,0 +1,25 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:fcm/model/firebase_subscription.dart';
class RegisterNewTokenLoading extends UIState {}
class RegisterNewTokenSuccess extends UIState {
final FirebaseSubscription firebaseSubscription;
RegisterNewTokenSuccess(this.firebaseSubscription);
@override
List<Object> get props => [firebaseSubscription];
}
class RegisterNewTokenFailure extends FeatureFailure {
final dynamic exception;
RegisterNewTokenFailure(this.exception);
@override
List<Object> get props => [exception];
}
@@ -0,0 +1,24 @@
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/model/register_new_token_request.dart';
import 'package:tmail_ui_user/features/push_notification/domain/repository/fcm_repository.dart';
import 'package:tmail_ui_user/features/push_notification/domain/state/register_new_token_state.dart';
class RegisterNewTokenInteractor {
final FCMRepository _fcmRepository;
RegisterNewTokenInteractor(this._fcmRepository);
Stream<Either<Failure, Success>> execute(RegisterNewTokenRequest newTokenRequest) async* {
try {
yield Right<Failure, Success>(RegisterNewTokenLoading());
final firebaseSubscription = await _fcmRepository.registerNewToken(newTokenRequest);
yield Right<Failure, Success>(RegisterNewTokenSuccess(firebaseSubscription));
} catch (e) {
yield Left<Failure, Success>(RegisterNewTokenFailure(e));
}
}
}