36 lines
1.1 KiB
Dart
36 lines
1.1 KiB
Dart
import 'features/auth/data/datasources/auth_remote_data_source.dart';
|
|
import 'features/auth/data/repositories/auth_repository_impl.dart';
|
|
import 'features/auth/domain/repositories/auth_repository.dart';
|
|
import 'features/auth/domain/usecases/send_otp.dart';
|
|
import 'features/auth/domain/usecases/verify_otp.dart';
|
|
import 'features/auth/presentation/bloc/auth_bloc.dart';
|
|
|
|
class ServiceLocator {
|
|
static final ServiceLocator _instance = ServiceLocator._internal();
|
|
factory ServiceLocator() => _instance;
|
|
ServiceLocator._internal();
|
|
|
|
late final AuthRemoteDataSource _authRemoteDataSource;
|
|
late final AuthRepository _authRepository;
|
|
late final SendOTP _sendOTPUseCase;
|
|
late final VerifyOTP _verifyOTPUseCase;
|
|
|
|
void init() {
|
|
_authRemoteDataSource = AuthRemoteDataSourceImpl();
|
|
|
|
_authRepository = AuthRepositoryImpl(
|
|
remoteDataSource: _authRemoteDataSource,
|
|
);
|
|
|
|
_sendOTPUseCase = SendOTP(_authRepository);
|
|
_verifyOTPUseCase = VerifyOTP(_authRepository);
|
|
}
|
|
|
|
AuthBloc get authBloc => AuthBloc(
|
|
sendOTPUseCase: _sendOTPUseCase,
|
|
verifyOTPUseCase: _verifyOTPUseCase,
|
|
);
|
|
}
|
|
|
|
final sl = ServiceLocator();
|