-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAuthService.dart
35 lines (30 loc) · 978 Bytes
/
AuthService.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import 'package:common/core/failure/failure.dart';
import 'package:common/core/result_type.dart';
import 'package:domain/bloc/auth/auth_cubit.dart';
import 'package:domain/repositories/auth_repository.dart';
class AuthService {
final AuthRepository _authRepository;
final AuthCubit _sessionCubit;
AuthService(this._authRepository, this._sessionCubit);
Future<void> logInWithCredentials(String username, String password) async {
_sessionCubit.isLoading();
final result = await _authRepository.login(username, password);
switch (result) {
case TSuccess<void, Failure> _:
_sessionCubit.isLogin();
case TError<void, Failure> _:
_sessionCubit.isError(result.error);
}
}
void onValidate() {
if (_authRepository.isLoggedIn()) {
_sessionCubit.isLogin();
} else {
_sessionCubit.isLogOut();
}
}
Future<void> onLogout() async {
await _authRepository.logout();
_sessionCubit.isLogOut();
}
}