mirror of
https://github.com/smmarty/friflex_flutter_starter.git
synced 2025-12-21 17:10:45 +00:00
51 lines
1.7 KiB
Dart
51 lines
1.7 KiB
Dart
import 'package:app_services/app_services.dart';
|
||
import 'package:friflex_starter/di/di_container.dart';
|
||
import 'package:friflex_starter/di/di_typedefs.dart';
|
||
import 'package:i_app_services/i_app_services.dart';
|
||
|
||
/// Класс для инициализации сервисов
|
||
final class DiServices {
|
||
/// Сервис для работы с путями
|
||
late final IPathProvider pathProvider;
|
||
|
||
/// Сервис для работы с локальным хранилищем
|
||
late final ISecureStorage secureStorage;
|
||
|
||
/// Метод для инициализации репозиториев в приложении
|
||
///
|
||
/// Принимает:
|
||
/// - [onProgress] - обратный вызов при прогрессе
|
||
/// - [diContainer] - контейнер зависимостей
|
||
/// - [onError] - обратный вызов при ошибке
|
||
void init({
|
||
required OnProgress onProgress,
|
||
required OnError onError,
|
||
required DiContainer diContainer,
|
||
}) {
|
||
try {
|
||
pathProvider = AppPathProvider();
|
||
onProgress(AppPathProvider.name);
|
||
} on Object catch (error, stackTrace) {
|
||
onError(
|
||
'Ошибка инициализации ${IPathProvider.name}',
|
||
error,
|
||
stackTrace,
|
||
);
|
||
}
|
||
try {
|
||
secureStorage = AppSecureStorage(
|
||
secretKey: diContainer.appConfig.secretKey,
|
||
);
|
||
onProgress(AppSecureStorage.name);
|
||
} on Object catch (error, stackTrace) {
|
||
onError(
|
||
'Ошибка инициализации ${ISecureStorage.name}',
|
||
error,
|
||
stackTrace,
|
||
);
|
||
}
|
||
|
||
onProgress('Инициализация сервисов завершена!');
|
||
}
|
||
}
|