chore: update app version to 1.3.36+32, change build mode to release, and enhance user role handling in chicken feature with new routes and DI setup
This commit is contained in:
36
packages/chicken/lib/features/jahad/data/di/jahad_di.dart
Normal file
36
packages/chicken/lib/features/jahad/data/di/jahad_di.dart
Normal file
@@ -0,0 +1,36 @@
|
||||
import 'package:rasadyar_chicken/features/jahad/data/datasources/remote/jahad_remote_data_source.dart';
|
||||
import 'package:rasadyar_chicken/features/jahad/data/datasources/remote/jahad_remote_data_source_impl.dart';
|
||||
import 'package:rasadyar_chicken/features/jahad/data/repositories/jahad_repository.dart';
|
||||
import 'package:rasadyar_chicken/features/jahad/data/repositories/jahad_repository_impl.dart';
|
||||
import 'package:rasadyar_core/core.dart';
|
||||
|
||||
/// Setup dependency injection for jahad feature
|
||||
Future<void> setupJahadDI(GetIt di, DioRemote dioRemote) async {
|
||||
di.registerLazySingleton<JahadRemoteDataSource>(
|
||||
() => JahadRemoteDataSourceImpl(dioRemote),
|
||||
);
|
||||
|
||||
di.registerLazySingleton<JahadRepository>(
|
||||
() => JahadRepositoryImpl(di.get<JahadRemoteDataSource>()),
|
||||
);
|
||||
}
|
||||
|
||||
/// Re-register jahad dependencies (used when base URL changes)
|
||||
Future<void> reRegisterJahadDI(GetIt di, DioRemote dioRemote) async {
|
||||
await reRegister(di, () => JahadRemoteDataSourceImpl(dioRemote));
|
||||
await reRegister(
|
||||
di,
|
||||
() => JahadRepositoryImpl(di.get<JahadRemoteDataSource>()),
|
||||
);
|
||||
}
|
||||
|
||||
/// Helper function to re-register a dependency
|
||||
Future<void> reRegister<T extends Object>(
|
||||
GetIt di,
|
||||
T Function() factory,
|
||||
) async {
|
||||
if (di.isRegistered<T>()) {
|
||||
await di.unregister<T>();
|
||||
}
|
||||
di.registerLazySingleton<T>(factory);
|
||||
}
|
||||
Reference in New Issue
Block a user