uaestats_fe/lib/domain/repos/t_auth_repo.dart
2026-05-25 18:01:41 +05:30

76 lines
1.7 KiB
Dart
Executable File

import 'package:flutter/material.dart';
import 'package:injectable/injectable.dart';
import 'package:uae_stat/domain/entities/preferences_entity.dart';
import 'package:uae_stat/domain/entities/session_entity.dart';
@test
@injectable
class TAuthRepo {
static final _sample = SessionEntity(
id: '',
expiresOn: DateTime.now().add(
const Duration(days: 30),
),
token: 'token',
modelJson: {'favorites': []},
);
static SessionEntity? _state;
Future<SessionEntity?> fetchLocallyStored() => Future.delayed(
kThemeAnimationDuration,
() => _state,
);
/// throws [LoginError]
Future<SessionEntity> login(
String email,
String pw,
) =>
Future.delayed(
kThemeAnimationDuration,
() => _sample,
);
Future<SessionEntity> fetchRefreshedSession() => Future.delayed(
kThemeAnimationDuration,
() => _state!,
);
Future googleAndAppleAuthencation(token) => Future.delayed(
kThemeAnimationDuration,
() => _sample,
);
Future<void> logout() => Future.delayed(
kThemeAnimationDuration,
() => _state = null,
);
/// throws [RegisterError]
Future<void> register({
required String name,
required String email,
required String pw,
required PreferencesEntity preferences,
}) =>
Future.delayed(
kThemeAnimationDuration,
);
Future<void> requestEmailVerification(
String email,
) =>
Future.delayed(
kThemeAnimationDuration,
);
Future<void> requestPwReset(
String email,
) =>
Future.delayed(
kThemeAnimationDuration,
);
bool didSessionExpire() => false;
}