feat : Map Widget

This commit is contained in:
2025-08-03 14:17:08 +03:30
parent 7d3ab64705
commit 693d8cbfab
9 changed files with 232 additions and 289 deletions

View File

@@ -2,24 +2,40 @@ import 'package:rasadyar_core/core.dart';
import 'package:rasadyar_livestock/data/common/dio_exception_handeler.dart';
import 'package:rasadyar_livestock/data/data_source/remote/auth/auth_remote.dart';
import 'package:rasadyar_livestock/data/data_source/remote/auth/auth_remote_imp.dart';
import 'package:rasadyar_livestock/data/repository/auth/auth_repository.dart';
import 'package:rasadyar_livestock/data/repository/auth/auth_repository_imp.dart';
import 'package:rasadyar_livestock/presentation/routes/app_pages.dart';
GetIt get diLiveStock => GetIt.instance;
Future setupLiveStockDI() async {
Future<void> setupLiveStockDI() async {
diLiveStock.registerSingleton(DioErrorHandler());
var tokenService = Get.find<TokenStorageService>();
final tokenService = Get.find<TokenStorageService>();
if (tokenService.baseurl.value == null) {
await tokenService.saveBaseUrl('https://api.dam.rasadyar.net/');
}
diLiveStock.registerLazySingleton<AuthRemoteDataSource>(
() => AuthRemoteDataSourceImp(diLiveStock.get<DioRemote>()),
);
diLiveStock.registerLazySingleton<AuthRepository>(
() => AuthRepositoryImp(diLiveStock.get<AuthRemoteDataSource>()),
);
diLiveStock.registerLazySingleton<AppInterceptor>(
() => AppInterceptor(
() => AppInterceptor(
refreshTokenCallback: () async {
var authRepository = diLiveStock.get<AuthRepositoryImp>();
var hasAuthenticated = await authRepository.hasAuthenticated();
final authRepository = diLiveStock.get<AuthRepository>();
final hasAuthenticated = await authRepository.hasAuthenticated();
if (hasAuthenticated) {
var newToken = await authRepository.loginWithRefreshToken(
final newToken = await authRepository.loginWithRefreshToken(
authRequest: {'refresh': tokenService.refreshToken.value},
);
return newToken?.access;
@@ -37,23 +53,13 @@ Future setupLiveStockDI() async {
),
);
// Register the DioRemote client
diLiveStock.registerLazySingleton<DioRemote>(
() => DioRemote(
() => DioRemote(
baseUrl: tokenService.baseurl.value,
interceptors: diLiveStock.get<AppInterceptor>(),
),
);
var dioRemoteClient = diLiveStock.get<DioRemote>();
await dioRemoteClient.init();
// Register the AuthRemote data source implementation
diLiveStock.registerLazySingleton<AuthRemoteDataSource>(
() => AuthRemoteDataSourceImp(diLiveStock.get<DioRemote>()),
);
// Register the AuthRepository implementation
diLiveStock.registerLazySingleton<AuthRepositoryImp>(
() => AuthRepositoryImp(diLiveStock.get<AuthRemoteDataSource>()),
);
await diLiveStock.get<DioRemote>().init();
}