fix(authentication)!: use FutureOrResult extension (close #41)
This commit is contained in:
parent
f36e0b51e0
commit
626d951443
packages/wyatt_authentication_bloc
example/lib/presentation/features/app
lib/src
data/repositories
domain/repositories
@ -3,7 +3,7 @@
|
||||
// -----
|
||||
// File: app.dart
|
||||
// Created Date: 19/08/2022 12:05:38
|
||||
// Last Modified: Thu Nov 10 2022
|
||||
// Last Modified: Wed Nov 23 2022
|
||||
// -----
|
||||
// Copyright (c) 2022
|
||||
|
||||
@ -21,7 +21,7 @@ import 'package:wyatt_form_bloc/wyatt_form_bloc.dart';
|
||||
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
||||
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
||||
|
||||
FutureResult<int?> onSignUpSuccess(
|
||||
FutureOrResult<int?> onSignUpSuccess(
|
||||
Account? account,
|
||||
WyattForm form,
|
||||
) async {
|
||||
@ -34,7 +34,7 @@ FutureResult<int?> onSignUpSuccess(
|
||||
return const Ok<int, AppException>(id);
|
||||
}
|
||||
|
||||
FutureResult<int?> onAccountChanges(Account? account) async {
|
||||
FutureOrResult<int?> onAccountChanges(Account? account) async {
|
||||
final id = Random().nextInt(1000);
|
||||
debugPrint('onAccountChanges: $account, generatedId: $id');
|
||||
return Ok<int, AppException>(id);
|
||||
|
@ -29,12 +29,12 @@ import 'package:wyatt_authentication_bloc/src/domain/repositories/authentication
|
||||
import 'package:wyatt_form_bloc/wyatt_form_bloc.dart';
|
||||
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
||||
|
||||
typedef OnSignUpSuccess<T> = FutureResult<T?> Function(
|
||||
typedef OnSignUpSuccess<T> = FutureOrResult<T?> Function(
|
||||
Account? account,
|
||||
WyattForm form,
|
||||
);
|
||||
|
||||
typedef OnAuthChange<T> = FutureResult<T?> Function(Account? account);
|
||||
typedef OnAuthChange<T> = FutureOrResult<T?> Function(Account? account);
|
||||
|
||||
class AuthenticationRepositoryImpl<T extends Object>
|
||||
extends AuthenticationRepository<T> {
|
||||
@ -46,7 +46,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
final OnSignUpSuccess<T>? _onSignUpSuccess;
|
||||
|
||||
final OnAuthChange<T>? _onAccountChanges;
|
||||
final StreamController<FutureResult<AccountWrapper<T>>> _signUpStream =
|
||||
final StreamController<FutureOrResult<AccountWrapper<T>>> _signUpStream =
|
||||
StreamController();
|
||||
|
||||
bool _pause = false; // Semaphore
|
||||
@ -93,7 +93,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
FormRepository get formRepository => _formRepository;
|
||||
|
||||
@override
|
||||
FutureResult<Account> signInWithEmailAndPassword({
|
||||
FutureOrResult<Account> signInWithEmailAndPassword({
|
||||
required String email,
|
||||
required String password,
|
||||
}) =>
|
||||
@ -111,7 +111,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<void> signOut() =>
|
||||
FutureOrResult<void> signOut() =>
|
||||
Result.tryCatchAsync<void, AppException, AppException>(
|
||||
() async {
|
||||
await _authenticationRemoteDataSource.signOut();
|
||||
@ -121,7 +121,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<Account> signUp({
|
||||
FutureOrResult<Account> signUp({
|
||||
required String email,
|
||||
required String password,
|
||||
}) =>
|
||||
@ -157,28 +157,28 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<void> destroyCache() =>
|
||||
FutureOrResult<void> destroyCache() =>
|
||||
Result.tryCatchAsync<void, AppException, AppException>(
|
||||
_authenticationLocalDataSource.destroy,
|
||||
(error) => error,
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<AccountWrapper<T>> getCache() =>
|
||||
FutureOrResult<AccountWrapper<T>> getCache() =>
|
||||
Result.tryCatchAsync<AccountWrapper<T>, AppException, AppException>(
|
||||
_authenticationLocalDataSource.load,
|
||||
(error) => error,
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<Account> getAccount() =>
|
||||
FutureOrResult<Account> getAccount() =>
|
||||
Result.tryCatchAsync<Account, AppException, AppException>(
|
||||
_authenticationLocalDataSource.loadAccount,
|
||||
(error) => error,
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<void> setAccount(
|
||||
FutureOrResult<void> setAccount(
|
||||
Account account,
|
||||
) =>
|
||||
Result.tryCatchAsync<void, AppException, AppException>(
|
||||
@ -189,14 +189,14 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<T> getData() =>
|
||||
FutureOrResult<T> getData() =>
|
||||
Result.tryCatchAsync<T, AppException, AppException>(
|
||||
_authenticationLocalDataSource.loadData,
|
||||
(error) => error,
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<void> setData(
|
||||
FutureOrResult<void> setData(
|
||||
T? data,
|
||||
) =>
|
||||
Result.tryCatchAsync<void, AppException, AppException>(
|
||||
@ -207,14 +207,14 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<String> getIdentityToken() =>
|
||||
FutureOrResult<String> getIdentityToken() =>
|
||||
Result.tryCatchAsync<String, AppException, AppException>(
|
||||
_authenticationRemoteDataSource.getIdentityToken,
|
||||
(error) => error,
|
||||
);
|
||||
|
||||
@override
|
||||
Stream<FutureResult<AccountWrapper<T>>> streamAccount() => MergeStream([
|
||||
Stream<FutureOrResult<AccountWrapper<T>>> streamAccount() => MergeStream([
|
||||
_signUpStream.stream.asBroadcastStream(),
|
||||
_authenticationRemoteDataSource.streamAccount().map((account) async {
|
||||
if (_onAccountChanges.isNotNull && !_pause) {
|
||||
@ -231,7 +231,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
]);
|
||||
|
||||
@override
|
||||
FutureResult<void> confirmPasswordReset({
|
||||
FutureOrResult<void> confirmPasswordReset({
|
||||
required String code,
|
||||
required String newPassword,
|
||||
}) =>
|
||||
@ -246,7 +246,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<void> sendEmailVerification() =>
|
||||
FutureOrResult<void> sendEmailVerification() =>
|
||||
Result.tryCatchAsync<void, AppException, AppException>(
|
||||
() async {
|
||||
await _authenticationRemoteDataSource.sendEmailVerification();
|
||||
@ -255,7 +255,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<void> sendPasswordResetEmail({required String email}) =>
|
||||
FutureOrResult<void> sendPasswordResetEmail({required String email}) =>
|
||||
Result.tryCatchAsync<void, AppException, AppException>(
|
||||
() async {
|
||||
await _authenticationRemoteDataSource.sendPasswordResetEmail(
|
||||
@ -266,7 +266,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<Account> signInAnonymously() =>
|
||||
FutureOrResult<Account> signInAnonymously() =>
|
||||
Result.tryCatchAsync<Account, AppException, AppException>(
|
||||
() async {
|
||||
final account =
|
||||
@ -277,7 +277,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<bool> verifyPasswordResetCode({required String code}) =>
|
||||
FutureOrResult<bool> verifyPasswordResetCode({required String code}) =>
|
||||
Result.tryCatchAsync<bool, AppException, AppException>(
|
||||
() async {
|
||||
final response = await _authenticationRemoteDataSource
|
||||
@ -288,7 +288,7 @@ class AuthenticationRepositoryImpl<T extends Object>
|
||||
);
|
||||
|
||||
@override
|
||||
FutureResult<void> refresh() =>
|
||||
FutureOrResult<void> refresh() =>
|
||||
Result.tryCatchAsync<void, AppException, AppException>(
|
||||
() async {
|
||||
await _authenticationRemoteDataSource.refresh();
|
||||
|
@ -30,7 +30,7 @@ abstract class AuthenticationRepository<T> extends BaseRepository {
|
||||
/// Throws a SignUpWithEmailAndPasswordFailureInterface if
|
||||
/// an exception occurs.
|
||||
/// {@endtemplate}
|
||||
FutureResult<Account> signUp({
|
||||
FutureOrResult<Account> signUp({
|
||||
required String email,
|
||||
required String password,
|
||||
});
|
||||
@ -40,21 +40,21 @@ abstract class AuthenticationRepository<T> extends BaseRepository {
|
||||
///
|
||||
/// Throws a SendEmailVerificationFailureInterface if an exception occurs.
|
||||
/// {@endtemplate}
|
||||
FutureResult<void> sendEmailVerification();
|
||||
FutureOrResult<void> sendEmailVerification();
|
||||
|
||||
/// {@template send_password_reset_email}
|
||||
/// Sends a password reset email to the provided [email].
|
||||
///
|
||||
/// Throws a SendPasswordResetEmailFailureInterface if an exception occurs.
|
||||
/// {@endtemplate}
|
||||
FutureResult<void> sendPasswordResetEmail({required String email});
|
||||
FutureOrResult<void> sendPasswordResetEmail({required String email});
|
||||
|
||||
/// {@template confirm_password_reset}
|
||||
/// Confirms the password reset with the provided [newPassword] and [code].
|
||||
///
|
||||
/// Throws a ConfirmPasswordResetFailureInterface if an exception occurs.
|
||||
/// {@endtemplate}
|
||||
FutureResult<void> confirmPasswordReset({
|
||||
FutureOrResult<void> confirmPasswordReset({
|
||||
required String code,
|
||||
required String newPassword,
|
||||
});
|
||||
@ -64,14 +64,14 @@ abstract class AuthenticationRepository<T> extends BaseRepository {
|
||||
///
|
||||
/// Throws a VerifyPasswordResetCodeFailureInterface if an exception occurs.
|
||||
/// {@endtemplate}
|
||||
FutureResult<bool> verifyPasswordResetCode({required String code});
|
||||
FutureOrResult<bool> verifyPasswordResetCode({required String code});
|
||||
|
||||
/// {@template signin_anom}
|
||||
/// Sign in anonymously.
|
||||
///
|
||||
/// Throws a SignInAnonymouslyFailureInterface if an exception occurs.
|
||||
/// {@endtemplate}
|
||||
FutureResult<Account> signInAnonymously();
|
||||
FutureOrResult<Account> signInAnonymously();
|
||||
|
||||
/// {@template signin_pwd}
|
||||
/// Signs in with the provided [email] and [password].
|
||||
@ -79,7 +79,7 @@ abstract class AuthenticationRepository<T> extends BaseRepository {
|
||||
/// Throws a SignInWithEmailAndPasswordFailureInterface if
|
||||
/// an exception occurs.
|
||||
/// {@endtemplate}
|
||||
FutureResult<Account> signInWithEmailAndPassword({
|
||||
FutureOrResult<Account> signInWithEmailAndPassword({
|
||||
required String email,
|
||||
required String password,
|
||||
});
|
||||
@ -88,9 +88,9 @@ abstract class AuthenticationRepository<T> extends BaseRepository {
|
||||
/// Signs out the current user.
|
||||
/// It also clears the cache and the associated data.
|
||||
/// {@endtemplate}
|
||||
FutureResult<void> signOut();
|
||||
FutureOrResult<void> signOut();
|
||||
|
||||
FutureResult<void> refresh();
|
||||
FutureOrResult<void> refresh();
|
||||
|
||||
/// {@template stream_account}
|
||||
/// Stream of [AccountWrapper] which will emit the current account when
|
||||
@ -99,16 +99,16 @@ abstract class AuthenticationRepository<T> extends BaseRepository {
|
||||
/// Emits [AccountWrapper] with null [Account] if the user is not
|
||||
/// authenticated.
|
||||
/// {@endtemplate}
|
||||
Stream<FutureResult<AccountWrapper<T>>> streamAccount();
|
||||
Stream<FutureOrResult<AccountWrapper<T>>> streamAccount();
|
||||
|
||||
FutureResult<String> getIdentityToken();
|
||||
FutureOrResult<String> getIdentityToken();
|
||||
|
||||
FutureResult<Account> getAccount();
|
||||
FutureResult<void> setAccount(Account account);
|
||||
FutureOrResult<Account> getAccount();
|
||||
FutureOrResult<void> setAccount(Account account);
|
||||
|
||||
FutureResult<T> getData();
|
||||
FutureResult<void> setData(T? data);
|
||||
FutureOrResult<T> getData();
|
||||
FutureOrResult<void> setData(T? data);
|
||||
|
||||
FutureResult<AccountWrapper<T>> getCache();
|
||||
FutureResult<void> destroyCache();
|
||||
FutureOrResult<AccountWrapper<T>> getCache();
|
||||
FutureOrResult<void> destroyCache();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user