1import 'package:connect/features/authentication/domain/entities/credentials_entity.dart';
2import 'package:dartz/dartz.dart';
4import '../../../../core/errors/exception_failure_adapter.dart';
5import '../../../../core/errors/failures.dart';
6import '../../../../core/services/service_locator.dart';
7import '../../domain/repository/authentication_repository.dart';
8import '../data_source/local_datasource/credentials_local_datasource.dart';
9import '../data_source/local_datasource/session_local_datasource.dart';
10import '../data_source/local_datasource/token_local_datasource.dart';
11import '../data_source/remote_datasource/authentication_remote_datasource.dart';
12import '../models/credentials_model.dart';
13import '../models/session_model.dart';
22 Future<Either<Failure, SessionModel>>
singIn({
30 final response = await _remoteDataSource.signInWithCredentials(
34 final token = session.token;
35 await _sessionLocalDataSource.saveSession(session: session);
36 await _tokenLocaldataDource.saveToken(token: token!);
37 await _credentialsLocalDataSource.saveCredentials(
40 return right(session);
43 return left(ExceptionFailureAdapter.adapt(e));
48 Future<Either<Failure, void>>
signOut() async {
sealed class AuthenticationEvent extends Equatable reqEntity
final class AuthenticatedState extends AuthenticationState credentials
override Future< Either< Failure, CredentialsModel?> > loadCredentials() async
final _credentialsLocalDataSource
override Future< Either< Failure, SessionModel?> > loadSession() async
final _tokenLocaldataDource
override Future< Either< Failure, bool > > checkBiometricAuthAvailability() async
override Future< Either< Failure, SessionModel > > singIn({ required CredentialsEntity reqEntity, }) async
final _sessionLocalDataSource
override Future< Either< Failure, void > > signOut() async
static Failure adapt(dynamic exception)
const SessionModel({ super.id, super.jsonrpc, super.parentId, super.processType, super.db, super.isAdmin, super.isSystem, super.name, super.partnerId, super.statusCode, super.supportUrl, super.uid, super.userContext, super.username, super.token, })