Files
sf-app-platform/packages/sf_infrastructure/lib/configure_dependencies.dart

41 lines
1.2 KiB
Dart

import 'package:cookie_jar/cookie_jar.dart';
import 'package:dio/dio.dart';
import 'package:get_it/get_it.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'src/network/dio_client.dart';
import 'src/env/env_contract.dart';
import 'src/api/questia_api.dart';
import 'src/repositories/questia_repository_impl.dart';
import 'src/repositories/questia_repository.dart';
export 'src/repositories/questia_repository.dart';
final getIt = GetIt.instance;
Future<void> configureDependencies(EnvConfig env, {bool log = false}) async {
final cookieJar = await buildPersistCookieJar();
final dio = await buildDioClient(
baseUrl: env.apiBaseUrl,
origin: env.apiOrigin,
log: log,
cookieJar: cookieJar,
);
getIt.registerLazySingleton<CookieJar>(() => cookieJar);
getIt.registerLazySingleton<Dio>(() => dio);
getIt.registerLazySingleton<QuestiaApi>(() => QuestiaApi(getIt<Dio>()));
getIt.registerLazySingleton<QuestiaRepository>(
() => QuestiaRepositoryImpl(getIt<QuestiaApi>()),
);
}
Future<void> clearSessionData() async {
final cookieJar = getIt<CookieJar>();
await cookieJar.deleteAll();
final prefs = await SharedPreferences.getInstance();
await prefs.clear();
}