6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit 9b9ff394

AuthorNKL<nikolaj.king@gmail.com>
Date2025-12-16 15:46:27 +0100
Create getit.dart

Changed files

concierge/lib/di/getit.dart | 98 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 98 insertions(+)

Diff

diff --git a/concierge/lib/di/getit.dart b/concierge/lib/di/getit.dart
new file mode 100644
index 00000000..84246f22
--- /dev/null
+++ b/concierge/lib/di/getit.dart
@@ -0,0 +1,98 @@
+
+import 'package:concierge/concierge_config.dart';
+import 'package:concierge/flavors.dart';
+import 'package:concierge/data/remote/api/concierge_service.dart';
+import 'package:concierge/data/local/secure_storage/concierge_secure_storage.dart';
+import 'package:concierge/data/repositories/property_repository_impl.dart';
+
+import 'dart:convert';
+import 'dart:io';
+import 'package:dio/dio.dart';
+import 'package:flutter/foundation.dart';
+import 'package:flutter_secure_storage/flutter_secure_storage.dart';
+import 'package:get_it/get_it.dart';
+
+import 'package:concierge/domain/repositories/property_repository.dart';
+import 'package:pretty_dio_logger/pretty_dio_logger.dart';
+
+final getIt = GetIt.instance;
+
+void setupDependencies(ConciergeConfig config) {
+ // #region agent log
+ void agentLog(String hypothesisId, String location, String message,
+ Map<String, dynamic> data) {
+ try {
+ final client = HttpClient();
+ client
+ .postUrl(Uri.parse(
+ 'http://127.0.0.1:7242/ingest/85a56c1a-3030-4072-b8d0-4f19580c0a8a'))
+ .then((req) {
+ req.headers.contentType = ContentType.json;
+ req.write(jsonEncode({
+ 'sessionId': 'debug-session',
+ 'runId': 'run1',
+ 'hypothesisId': hypothesisId,
+ 'location': location,
+ 'message': message,
+ 'data': data,
+ 'timestamp': DateTime.now().millisecondsSinceEpoch,
+ }));
+ return req.close();
+ }).then((_) {
+ client.close(force: true);
+ }).catchError((_) {
+ client.close(force: true);
+ });
+ } catch (_) {}
+ }
+
+ agentLog('H0', 'lib/di/getit.dart:setupDependencies', 'setupDependencies called', {
+ 'flavor': config.flavor.name,
+ 'hotelCode': config.hotelCode,
+ 'hasUserToken': (config.userToken != null && config.userToken!.isNotEmpty),
+ });
+ // #endregion agent log
+
+ // Allow re-configuring the plugin each time the host app opens it.
+ if (getIt.isRegistered<PropertyRepository>()) {
+ getIt.unregister<PropertyRepository>();
+ }
+ if (getIt.isRegistered<ConciergeService>()) {
+ getIt.unregister<ConciergeService>();
+ }
+ if (getIt.isRegistered<Dio>()) {
+ getIt.unregister<Dio>();
+ }
+ if (getIt.isRegistered<ConciergeConfig>()) {
+ getIt.unregister<ConciergeConfig>();
+ }
+ if (getIt.isRegistered<ConciergeSecureStorage>()) {
+ getIt.unregister<ConciergeSecureStorage>();
+ }
+ if (getIt.isRegistered<FlutterSecureStorage>()) {
+ getIt.unregister<FlutterSecureStorage>();
+ }
+
+ getIt.registerSingleton<ConciergeConfig>(config);
+
+ final baseUrl = switch (config.flavor) {
+ Flavor.stage => "https://admin-stage.concierge.comwell.com",
+ Flavor.production => "https://admin.concierge.comwell.com/api/da/",
+ };
+
+ final dio = Dio(BaseOptions(baseUrl: baseUrl));
+ dio.interceptors.addAll([
+ if (kDebugMode) PrettyDioLogger(requestBody: true, requestHeader: true),
+ ]);
+ getIt.registerSingleton<Dio>(dio);
+
+ getIt.registerLazySingleton<FlutterSecureStorage>(
+ () => const FlutterSecureStorage());
+ getIt.registerLazySingleton<ConciergeSecureStorage>(
+ () => ConciergeSecureStorage(getIt<FlutterSecureStorage>()));
+
+ getIt.registerLazySingleton<ConciergeService>(() => ConciergeService(dio));
+ getIt.registerLazySingleton<PropertyRepository>(
+ () => PropertyRepositoryImpl(getIt<ConciergeService>()));
+
+}