1
+ import 'package:auth_api/auth_api.dart' ;
2
+ import 'package:auth_client/auth_client.dart' ;
3
+ import 'package:auth_inmemory/auth_inmemory.dart' ;
4
+ import 'package:auth_repository/auth_repository.dart' ;
5
+ import 'package:core/core.dart' ;
6
+ import 'package:data_api/data_api.dart' ;
7
+ import 'package:data_client/data_client.dart' ;
8
+ import 'package:data_inmemory/data_inmemory.dart' ;
9
+ import 'package:data_repository/data_repository.dart' ;
1
10
import 'package:flutter/material.dart' ;
2
11
import 'package:flutter_bloc/flutter_bloc.dart' ;
3
- import 'package:ht_auth_api/ht_auth_api.dart' ;
4
- import 'package:ht_auth_client/ht_auth_client.dart' ;
5
- import 'package:ht_auth_inmemory/ht_auth_inmemory.dart' ;
6
- import 'package:ht_auth_repository/ht_auth_repository.dart' ;
7
- import 'package:ht_dashboard/app/app.dart' ;
8
- import 'package:ht_dashboard/app/config/config.dart' as app_config;
9
- import 'package:ht_dashboard/bloc_observer.dart' ;
10
- import 'package:ht_data_api/ht_data_api.dart' ;
11
- import 'package:ht_data_client/ht_data_client.dart' ;
12
- import 'package:ht_data_inmemory/ht_data_inmemory.dart' ;
13
- import 'package:ht_data_repository/ht_data_repository.dart' ;
14
- import 'package:ht_http_client/ht_http_client.dart' ;
15
- import 'package:ht_kv_storage_shared_preferences/ht_kv_storage_shared_preferences.dart' ;
16
- import 'package:ht_shared/ht_shared.dart' ;
17
- import 'package:ht_ui_kit/ht_ui_kit.dart' ;
12
+ import 'package:flutter_news_app_web_dashboard_full_source_code/app/app.dart' ;
13
+ import 'package:flutter_news_app_web_dashboard_full_source_code/app/config/config.dart'
14
+ as app_config;
15
+ import 'package:flutter_news_app_web_dashboard_full_source_code/bloc_observer.dart' ;
16
+ import 'package:http_client/http_client.dart' ;
17
+ import 'package:kv_storage_shared_preferences/kv_storage_shared_preferences.dart' ;
18
18
import 'package:logging/logging.dart' ;
19
19
import 'package:timeago/timeago.dart' as timeago;
20
+ import 'package:ui_kit/ui_kit.dart' ;
20
21
21
22
Future <Widget > bootstrap (
22
23
app_config.AppConfig appConfig,
@@ -28,242 +29,235 @@ Future<Widget> bootstrap(
28
29
timeago.setLocaleMessages ('en' , EnTimeagoMessages ());
29
30
timeago.setLocaleMessages ('ar' , ArTimeagoMessages ());
30
31
31
- final kvStorage = await HtKvStorageSharedPreferences .getInstance ();
32
+ final kvStorage = await KVStorageSharedPreferences .getInstance ();
32
33
33
- late final HtAuthClient authClient;
34
- late final HtAuthRepository authenticationRepository;
35
- HtHttpClient ? httpClient;
34
+ late final AuthClient authClient;
35
+ late final AuthRepository authenticationRepository;
36
+ HttpClient ? httpClient;
36
37
37
38
if (appConfig.environment == app_config.AppEnvironment .demo) {
38
- authClient = HtAuthInmemory (
39
- logger: Logger ('HtAuthInmemory' ),
40
- );
41
- authenticationRepository = HtAuthRepository (
39
+ authClient = AuthInmemory (logger: Logger ('AuthInmemory' ));
40
+ authenticationRepository = AuthRepository (
42
41
authClient: authClient,
43
42
storageService: kvStorage,
44
43
);
45
44
} else {
46
- httpClient = HtHttpClient (
45
+ httpClient = HttpClient (
47
46
baseUrl: appConfig.baseUrl,
48
47
tokenProvider: () => authenticationRepository.getAuthToken (),
49
48
);
50
- authClient = HtAuthApi (
51
- httpClient: httpClient,
52
- logger: Logger ('HtAuthApi' ),
53
- );
54
- authenticationRepository = HtAuthRepository (
49
+ authClient = AuthApi (httpClient: httpClient, logger: Logger ('AuthApi' ));
50
+ authenticationRepository = AuthRepository (
55
51
authClient: authClient,
56
52
storageService: kvStorage,
57
53
);
58
54
}
59
55
60
- HtDataClient <Headline > headlinesClient;
61
- HtDataClient <Topic > topicsClient;
62
- HtDataClient <Country > countriesClient;
63
- HtDataClient <Source > sourcesClient;
64
- HtDataClient <UserContentPreferences > userContentPreferencesClient;
65
- HtDataClient <UserAppSettings > userAppSettingsClient;
66
- HtDataClient <RemoteConfig > remoteConfigClient;
67
- HtDataClient <DashboardSummary > dashboardSummaryClient;
56
+ DataClient <Headline > headlinesClient;
57
+ DataClient <Topic > topicsClient;
58
+ DataClient <Country > countriesClient;
59
+ DataClient <Source > sourcesClient;
60
+ DataClient <UserContentPreferences > userContentPreferencesClient;
61
+ DataClient <UserAppSettings > userAppSettingsClient;
62
+ DataClient <RemoteConfig > remoteConfigClient;
63
+ DataClient <DashboardSummary > dashboardSummaryClient;
68
64
69
65
if (appConfig.environment == app_config.AppEnvironment .demo) {
70
- headlinesClient = HtDataInMemory <Headline >(
66
+ headlinesClient = DataInMemory <Headline >(
71
67
toJson: (i) => i.toJson (),
72
68
getId: (i) => i.id,
73
69
initialData: headlinesFixturesData,
74
- logger: Logger ('HtDataInMemory <Headline>' ),
70
+ logger: Logger ('DataInMemory <Headline>' ),
75
71
);
76
- topicsClient = HtDataInMemory <Topic >(
72
+ topicsClient = DataInMemory <Topic >(
77
73
toJson: (i) => i.toJson (),
78
74
getId: (i) => i.id,
79
75
initialData: topicsFixturesData,
80
- logger: Logger ('HtDataInMemory <Topic>' ),
76
+ logger: Logger ('DataInMemory <Topic>' ),
81
77
);
82
- countriesClient = HtDataInMemory <Country >(
78
+ countriesClient = DataInMemory <Country >(
83
79
toJson: (i) => i.toJson (),
84
80
getId: (i) => i.id,
85
81
initialData: countriesFixturesData,
86
- logger: Logger ('HtDataInMemory <Country>' ),
82
+ logger: Logger ('DataInMemory <Country>' ),
87
83
);
88
- sourcesClient = HtDataInMemory <Source >(
84
+ sourcesClient = DataInMemory <Source >(
89
85
toJson: (i) => i.toJson (),
90
86
getId: (i) => i.id,
91
87
initialData: sourcesFixturesData,
92
- logger: Logger ('HtDataInMemory <Source>' ),
88
+ logger: Logger ('DataInMemory <Source>' ),
93
89
);
94
- userContentPreferencesClient = HtDataInMemory <UserContentPreferences >(
90
+ userContentPreferencesClient = DataInMemory <UserContentPreferences >(
95
91
toJson: (i) => i.toJson (),
96
92
getId: (i) => i.id,
97
- logger: Logger ('HtDataInMemory <UserContentPreferences>' ),
93
+ logger: Logger ('DataInMemory <UserContentPreferences>' ),
98
94
);
99
- userAppSettingsClient = HtDataInMemory <UserAppSettings >(
95
+ userAppSettingsClient = DataInMemory <UserAppSettings >(
100
96
toJson: (i) => i.toJson (),
101
97
getId: (i) => i.id,
102
- logger: Logger ('HtDataInMemory <UserAppSettings>' ),
98
+ logger: Logger ('DataInMemory <UserAppSettings>' ),
103
99
);
104
- remoteConfigClient = HtDataInMemory <RemoteConfig >(
100
+ remoteConfigClient = DataInMemory <RemoteConfig >(
105
101
toJson: (i) => i.toJson (),
106
102
getId: (i) => i.id,
107
103
initialData: remoteConfigsFixturesData,
108
- logger: Logger ('HtDataInMemory <RemoteConfig>' ),
104
+ logger: Logger ('DataInMemory <RemoteConfig>' ),
109
105
);
110
- dashboardSummaryClient = HtDataInMemory <DashboardSummary >(
106
+ dashboardSummaryClient = DataInMemory <DashboardSummary >(
111
107
toJson: (i) => i.toJson (),
112
108
getId: (i) => i.id,
113
109
initialData: dashboardSummaryFixturesData,
114
- logger: Logger ('HtDataInMemory <DashboardSummary>' ),
110
+ logger: Logger ('DataInMemory <DashboardSummary>' ),
115
111
);
116
112
} else if (appConfig.environment == app_config.AppEnvironment .development) {
117
- headlinesClient = HtDataApi <Headline >(
113
+ headlinesClient = DataApi <Headline >(
118
114
httpClient: httpClient! ,
119
115
modelName: 'headline' ,
120
116
fromJson: Headline .fromJson,
121
117
toJson: (headline) => headline.toJson (),
122
- logger: Logger ('HtDataApi <Headline>' ),
118
+ logger: Logger ('DataApi <Headline>' ),
123
119
);
124
- topicsClient = HtDataApi <Topic >(
120
+ topicsClient = DataApi <Topic >(
125
121
httpClient: httpClient,
126
122
modelName: 'topic' ,
127
123
fromJson: Topic .fromJson,
128
124
toJson: (topic) => topic.toJson (),
129
- logger: Logger ('HtDataApi <Topic>' ),
125
+ logger: Logger ('DataApi <Topic>' ),
130
126
);
131
- countriesClient = HtDataApi <Country >(
127
+ countriesClient = DataApi <Country >(
132
128
httpClient: httpClient,
133
129
modelName: 'country' ,
134
130
fromJson: Country .fromJson,
135
131
toJson: (country) => country.toJson (),
136
- logger: Logger ('HtDataApi <Country>' ),
132
+ logger: Logger ('DataApi <Country>' ),
137
133
);
138
- sourcesClient = HtDataApi <Source >(
134
+ sourcesClient = DataApi <Source >(
139
135
httpClient: httpClient,
140
136
modelName: 'source' ,
141
137
fromJson: Source .fromJson,
142
138
toJson: (source) => source.toJson (),
143
- logger: Logger ('HtDataApi <Source>' ),
139
+ logger: Logger ('DataApi <Source>' ),
144
140
);
145
- userContentPreferencesClient = HtDataApi <UserContentPreferences >(
141
+ userContentPreferencesClient = DataApi <UserContentPreferences >(
146
142
httpClient: httpClient,
147
143
modelName: 'user_content_preferences' ,
148
144
fromJson: UserContentPreferences .fromJson,
149
145
toJson: (prefs) => prefs.toJson (),
150
- logger: Logger ('HtDataApi <UserContentPreferences>' ),
146
+ logger: Logger ('DataApi <UserContentPreferences>' ),
151
147
);
152
- userAppSettingsClient = HtDataApi <UserAppSettings >(
148
+ userAppSettingsClient = DataApi <UserAppSettings >(
153
149
httpClient: httpClient,
154
150
modelName: 'user_app_settings' ,
155
151
fromJson: UserAppSettings .fromJson,
156
152
toJson: (settings) => settings.toJson (),
157
- logger: Logger ('HtDataApi <UserAppSettings>' ),
153
+ logger: Logger ('DataApi <UserAppSettings>' ),
158
154
);
159
- remoteConfigClient = HtDataApi <RemoteConfig >(
155
+ remoteConfigClient = DataApi <RemoteConfig >(
160
156
httpClient: httpClient,
161
157
modelName: 'remote_config' ,
162
158
fromJson: RemoteConfig .fromJson,
163
159
toJson: (config) => config.toJson (),
164
- logger: Logger ('HtDataApi <RemoteConfig>' ),
160
+ logger: Logger ('DataApi <RemoteConfig>' ),
165
161
);
166
- dashboardSummaryClient = HtDataApi <DashboardSummary >(
162
+ dashboardSummaryClient = DataApi <DashboardSummary >(
167
163
httpClient: httpClient,
168
164
modelName: 'dashboard_summary' ,
169
165
fromJson: DashboardSummary .fromJson,
170
166
toJson: (summary) => summary.toJson (),
171
- logger: Logger ('HtDataApi <DashboardSummary>' ),
167
+ logger: Logger ('DataApi <DashboardSummary>' ),
172
168
);
173
169
} else {
174
- headlinesClient = HtDataApi <Headline >(
170
+ headlinesClient = DataApi <Headline >(
175
171
httpClient: httpClient! ,
176
172
modelName: 'headline' ,
177
173
fromJson: Headline .fromJson,
178
174
toJson: (headline) => headline.toJson (),
179
- logger: Logger ('HtDataApi <Headline>' ),
175
+ logger: Logger ('DataApi <Headline>' ),
180
176
);
181
- topicsClient = HtDataApi <Topic >(
177
+ topicsClient = DataApi <Topic >(
182
178
httpClient: httpClient,
183
179
modelName: 'topic' ,
184
180
fromJson: Topic .fromJson,
185
181
toJson: (topic) => topic.toJson (),
186
- logger: Logger ('HtDataApi <Topic>' ),
182
+ logger: Logger ('DataApi <Topic>' ),
187
183
);
188
- countriesClient = HtDataApi <Country >(
184
+ countriesClient = DataApi <Country >(
189
185
httpClient: httpClient,
190
186
modelName: 'country' ,
191
187
fromJson: Country .fromJson,
192
188
toJson: (country) => country.toJson (),
193
- logger: Logger ('HtDataApi <Country>' ),
189
+ logger: Logger ('DataApi <Country>' ),
194
190
);
195
- sourcesClient = HtDataApi <Source >(
191
+ sourcesClient = DataApi <Source >(
196
192
httpClient: httpClient,
197
193
modelName: 'source' ,
198
194
fromJson: Source .fromJson,
199
195
toJson: (source) => source.toJson (),
200
- logger: Logger ('HtDataApi <Source>' ),
196
+ logger: Logger ('DataApi <Source>' ),
201
197
);
202
- userContentPreferencesClient = HtDataApi <UserContentPreferences >(
198
+ userContentPreferencesClient = DataApi <UserContentPreferences >(
203
199
httpClient: httpClient,
204
200
modelName: 'user_content_preferences' ,
205
201
fromJson: UserContentPreferences .fromJson,
206
202
toJson: (prefs) => prefs.toJson (),
207
- logger: Logger ('HtDataApi <UserContentPreferences>' ),
203
+ logger: Logger ('DataApi <UserContentPreferences>' ),
208
204
);
209
- userAppSettingsClient = HtDataApi <UserAppSettings >(
205
+ userAppSettingsClient = DataApi <UserAppSettings >(
210
206
httpClient: httpClient,
211
207
modelName: 'user_app_settings' ,
212
208
fromJson: UserAppSettings .fromJson,
213
209
toJson: (settings) => settings.toJson (),
214
- logger: Logger ('HtDataApi <UserAppSettings>' ),
210
+ logger: Logger ('DataApi <UserAppSettings>' ),
215
211
);
216
- remoteConfigClient = HtDataApi <RemoteConfig >(
212
+ remoteConfigClient = DataApi <RemoteConfig >(
217
213
httpClient: httpClient,
218
214
modelName: 'remote_config' ,
219
215
fromJson: RemoteConfig .fromJson,
220
216
toJson: (config) => config.toJson (),
221
- logger: Logger ('HtDataApi <RemoteConfig>' ),
217
+ logger: Logger ('DataApi <RemoteConfig>' ),
222
218
);
223
- dashboardSummaryClient = HtDataApi <DashboardSummary >(
219
+ dashboardSummaryClient = DataApi <DashboardSummary >(
224
220
httpClient: httpClient,
225
221
modelName: 'dashboard_summary' ,
226
222
fromJson: DashboardSummary .fromJson,
227
223
toJson: (summary) => summary.toJson (),
228
- logger: Logger ('HtDataApi <DashboardSummary>' ),
224
+ logger: Logger ('DataApi <DashboardSummary>' ),
229
225
);
230
226
}
231
227
232
- final headlinesRepository = HtDataRepository <Headline >(
228
+ final headlinesRepository = DataRepository <Headline >(
233
229
dataClient: headlinesClient,
234
230
);
235
- final topicsRepository = HtDataRepository <Topic >(
236
- dataClient: topicsClient,
237
- );
238
- final countriesRepository = HtDataRepository <Country >(
231
+ final topicsRepository = DataRepository <Topic >(dataClient: topicsClient);
232
+ final countriesRepository = DataRepository <Country >(
239
233
dataClient: countriesClient,
240
234
);
241
- final sourcesRepository = HtDataRepository <Source >(dataClient: sourcesClient);
235
+ final sourcesRepository = DataRepository <Source >(dataClient: sourcesClient);
242
236
final userContentPreferencesRepository =
243
- HtDataRepository <UserContentPreferences >(
237
+ DataRepository <UserContentPreferences >(
244
238
dataClient: userContentPreferencesClient,
245
239
);
246
- final userAppSettingsRepository = HtDataRepository <UserAppSettings >(
240
+ final userAppSettingsRepository = DataRepository <UserAppSettings >(
247
241
dataClient: userAppSettingsClient,
248
242
);
249
- final remoteConfigRepository = HtDataRepository <RemoteConfig >(
243
+ final remoteConfigRepository = DataRepository <RemoteConfig >(
250
244
dataClient: remoteConfigClient,
251
245
);
252
- final dashboardSummaryRepository = HtDataRepository <DashboardSummary >(
246
+ final dashboardSummaryRepository = DataRepository <DashboardSummary >(
253
247
dataClient: dashboardSummaryClient,
254
248
);
255
249
256
250
return App (
257
- htAuthenticationRepository : authenticationRepository,
258
- htHeadlinesRepository : headlinesRepository,
259
- htTopicsRepository : topicsRepository,
260
- htCountriesRepository : countriesRepository,
261
- htSourcesRepository : sourcesRepository,
262
- htUserAppSettingsRepository : userAppSettingsRepository,
263
- htUserContentPreferencesRepository : userContentPreferencesRepository,
264
- htRemoteConfigRepository : remoteConfigRepository,
265
- htDashboardSummaryRepository : dashboardSummaryRepository,
266
- kvStorageService : kvStorage,
251
+ authenticationRepository : authenticationRepository,
252
+ headlinesRepository : headlinesRepository,
253
+ topicsRepository : topicsRepository,
254
+ countriesRepository : countriesRepository,
255
+ sourcesRepository : sourcesRepository,
256
+ userAppSettingsRepository : userAppSettingsRepository,
257
+ userContentPreferencesRepository : userContentPreferencesRepository,
258
+ remoteConfigRepository : remoteConfigRepository,
259
+ dashboardSummaryRepository : dashboardSummaryRepository,
260
+ storageService : kvStorage,
267
261
environment: environment,
268
262
);
269
263
}
0 commit comments