import 'package:get_it/get_it.dart'; import 'package:holzleitner_api/holzleitner_api.dart'; import 'auth_token_provider.dart'; import 'backend_config.dart'; import 'dev_password_grant_token_provider.dart'; import 'holzleitner_api_factory.dart'; /// Registriert das HTTP-/API-Subsystem im globalen GetIt-Locator. /// /// Aufruf bewusst nicht im AppBloc-Lifecycle, sondern in `main()` vor /// dem `runApp` — die API-Klassen sind über die gesamte App-Lebensdauer /// stabil und brauchen keine Reaktion auf App-Events. /// /// Phase A nutzt die `DevPasswordGrantTokenProvider`-Implementation. /// Phase B wird hier den OIDC-PKCE-Provider einhängen und die /// Dev-Implementation komplett entfernen. void registerNetworking({ required GetIt locator, BackendConfig config = BackendConfig.localDev, String testfahrerUsername = 'testfahrer', String testfahrerPassword = 'test', }) { locator.registerSingleton(config); locator.registerSingleton( DevPasswordGrantTokenProvider( tokenEndpoint: config.keycloakTokenEndpoint, clientId: config.keycloakClientId, username: testfahrerUsername, password: testfahrerPassword, ), ); locator.registerSingleton( buildHolzleitnerApi( config: config, tokenProvider: locator(), ), ); }