Add initial project structure and configuration files for iOS and Android
This commit is contained in:
59
lib/di/injection.dart
Normal file
59
lib/di/injection.dart
Normal file
@@ -0,0 +1,59 @@
|
||||
import 'package:get_it/get_it.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import '../api/services/auth_service.dart';
|
||||
import '../api/interceptors/auth_interceptor.dart';
|
||||
import '../data/repositories/auth_repository.dart';
|
||||
import '../features/auth/controllers/auth_cubit.dart';
|
||||
import '../security/secure_storage.dart';
|
||||
|
||||
final getIt = GetIt.instance;
|
||||
|
||||
Future<void> setupDependencies() async {
|
||||
// Register Dio client
|
||||
getIt.registerSingleton<Dio>(_createDioClient());
|
||||
|
||||
// Register secure storage
|
||||
getIt.registerSingleton<SecureStorage>(SecureStorage());
|
||||
|
||||
// Register services
|
||||
getIt.registerSingleton<AuthService>(AuthService(getIt<Dio>()));
|
||||
|
||||
// Register repositories
|
||||
getIt.registerSingleton<AuthRepository>(
|
||||
AuthRepository(getIt<AuthService>(), getIt<SecureStorage>()),
|
||||
);
|
||||
|
||||
// Add auth interceptor after repository is available
|
||||
getIt<Dio>().interceptors.add(
|
||||
AuthInterceptor(getIt<AuthRepository>(), getIt<Dio>()),
|
||||
);
|
||||
|
||||
// Register controllers/cubits
|
||||
getIt.registerFactory<AuthCubit>(() => AuthCubit(getIt<AuthRepository>()));
|
||||
}
|
||||
|
||||
Dio _createDioClient() {
|
||||
final dio = Dio(
|
||||
BaseOptions(
|
||||
baseUrl: 'https://api.yourbank.com/v1',
|
||||
connectTimeout: const Duration(seconds: 5),
|
||||
receiveTimeout: const Duration(seconds: 3),
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json',
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
// Add logging interceptor for development
|
||||
dio.interceptors.add(LogInterceptor(
|
||||
request: true,
|
||||
requestHeader: true,
|
||||
requestBody: true,
|
||||
responseHeader: true,
|
||||
responseBody: true,
|
||||
error: true,
|
||||
));
|
||||
|
||||
return dio;
|
||||
}
|
Reference in New Issue
Block a user