dependency_registrars.dart
3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import 'package:get/get.dart';
import '../../core/config/app_environment_config.dart';
import '../../core/error/app_error_handler.dart';
import '../../core/network/api/config_api.dart';
import '../../core/network/api/health_api.dart';
import '../../core/network/api/interaction_api.dart';
import '../../core/network/api/obs_api.dart';
import '../../core/network/api/pay_api.dart';
import '../../core/network/api/theme_api.dart';
import '../../core/network/api/user_api.dart';
import '../../core/network/api/vip_api.dart';
import '../../core/network/dio_client.dart';
import '../../core/services/health_kit_upload_service.dart';
import '../../core/services/im_service.dart';
import '../../core/services/obs_upload_service.dart';
import '../../core/services/push_service.dart';
import '../../core/services/thinking_data_service.dart';
import '../../core/services/user_state_service.dart';
import '../../core/services/wear_engine_service.dart';
import '../../data/local/local_storage.dart';
import '../../data/local/user_account_storage.dart';
import '../../data/local/user_preferences_storage.dart';
/// App-wide infrastructure (error handling, config, network client).
void registerCoreDeps({
required AppEnvironmentConfig environmentConfig,
required UserPreferencesStorage userPreferencesStorage,
required UserAccountStorage userAccountStorage,
required LocalStorage localStorage,
}) {
Get.put(AppErrorHandler(), permanent: true);
Get.put(localStorage, permanent: true);
Get.put(environmentConfig, permanent: true);
Get.put(userPreferencesStorage, permanent: true);
Get.put(userAccountStorage, permanent: true);
Get.put(
DioClient(
Get.find<AppEnvironmentConfig>(),
Get.find<UserPreferencesStorage>(),
),
permanent: true,
);
}
/// User session, auth APIs, and login-side SDK wiring.
void registerUserSessionDeps() {
final dioClient = Get.find<DioClient>();
final userPrefs = Get.find<UserPreferencesStorage>();
Get.put(UserApi(dioClient), permanent: true);
Get.put(VipApi(dioClient), permanent: true);
Get.put<ImService>(ImServiceStub(), permanent: true);
Get.put(
ThinkingDataService(Get.find<AppEnvironmentConfig>()),
permanent: true,
);
Get.put(PushService(Get.find<UserApi>()), permanent: true);
Get.put(
UserStateService(
userPrefs,
Get.find<UserApi>(),
Get.find<ImService>(),
Get.find<PushService>(),
Get.find<ThinkingDataService>(),
),
permanent: true,
);
}
/// Health data API and upload pipeline (lazy, recreated after dispose).
void registerHealthDeps(DioClient dioClient) {
Get.lazyPut(() => HealthApi(dioClient), fenix: true);
Get.lazyPut(
() => HealthKitUploadService(Get.find<HealthApi>()),
fenix: true,
);
}
/// Payment API.
void registerPayDeps(DioClient dioClient) {
Get.lazyPut(() => PayApi(dioClient), fenix: true);
}
/// Remote config API.
void registerConfigDeps(DioClient dioClient) {
Get.lazyPut(() => ConfigApi(dioClient), fenix: true);
}
/// Watch theme API.
void registerThemeDeps(DioClient dioClient) {
Get.lazyPut(() => ThemeApi(dioClient), fenix: true);
}
/// Partner interaction API and wear engine.
void registerInteractionDeps(
DioClient dioClient,
UserPreferencesStorage userPrefs,
) {
Get.lazyPut(() => InteractionApi(dioClient), fenix: true);
Get.lazyPut(
() => WearEngineService(
userPrefs,
Get.find<HealthApi>(),
Get.find<InteractionApi>(),
),
fenix: true,
);
}
/// Object storage upload API and service.
void registerObsDeps(DioClient dioClient) {
Get.lazyPut(() => ObsApi(dioClient), fenix: true);
Get.lazyPut(() => ObsUploadService(Get.find<ObsApi>()), fenix: true);
}