Skip to content

Commit fc7ba06

Browse files
committed
refactor(demo): remove unused data repositories and fixtures
- Remove DataRepository<Engagement>, DataRepository<Report>, and DataRepository<AppReview> from DemoDataInitializerService and DemoDataMigrationService - Delete related fixture data lists and initialization/migration methods - Update dependencies in bootstrap.dart - Update pubspec.yaml and pubspec.lock with new core ref
1 parent 3dc8459 commit fc7ba06

File tree

5 files changed

+8
-218
lines changed

5 files changed

+8
-218
lines changed

lib/app/services/demo_data_initializer_service.dart

Lines changed: 2 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -21,32 +21,20 @@ class DemoDataInitializerService {
2121
DemoDataInitializerService({
2222
required DataRepository<AppSettings> appSettingsRepository,
2323
required DataRepository<UserContentPreferences>
24-
userContentPreferencesRepository,
25-
required DataRepository<Engagement> engagementRepository,
26-
required DataRepository<Report> reportRepository,
27-
required DataRepository<AppReview> appReviewRepository,
24+
userContentPreferencesRepository,
2825
required DataRepository<InAppNotification> inAppNotificationRepository,
2926
required this.appSettingsFixturesData,
3027
required this.userContentPreferencesFixturesData,
3128
required this.inAppNotificationsFixturesData,
32-
required this.engagementFixturesData,
33-
required this.reportFixturesData,
34-
required this.appReviewFixturesData,
3529
}) : _appSettingsRepository = appSettingsRepository,
3630
_userContentPreferencesRepository = userContentPreferencesRepository,
37-
_engagementRepository = engagementRepository,
38-
_reportRepository = reportRepository,
39-
_appReviewRepository = appReviewRepository,
4031
_inAppNotificationRepository = inAppNotificationRepository,
4132
_logger = Logger('DemoDataInitializerService');
4233

4334
final DataRepository<AppSettings> _appSettingsRepository;
4435
final DataRepository<UserContentPreferences>
45-
_userContentPreferencesRepository;
36+
_userContentPreferencesRepository;
4637
final DataRepository<InAppNotification> _inAppNotificationRepository;
47-
final DataRepository<Engagement> _engagementRepository;
48-
final DataRepository<Report> _reportRepository;
49-
final DataRepository<AppReview> _appReviewRepository;
5038
final Logger _logger;
5139

5240
/// A list of [AppSettings] fixture data to be used as a template.
@@ -64,15 +52,6 @@ class DemoDataInitializerService {
6452
/// All items in this list will be cloned for new users.
6553
final List<InAppNotification> inAppNotificationsFixturesData;
6654

67-
/// A list of [Engagement] fixture data to be used as a template.
68-
final List<Engagement> engagementFixturesData;
69-
70-
/// A list of [Report] fixture data to be used as a template.
71-
final List<Report> reportFixturesData;
72-
73-
/// A list of [AppReview] fixture data to be used as a template.
74-
final List<AppReview> appReviewFixturesData;
75-
7655
/// Initializes essential user-specific data in the in-memory clients
7756
/// for the given [user].
7857
///
@@ -85,14 +64,10 @@ class DemoDataInitializerService {
8564
/// user in the demo environment.
8665
Future<void> initializeUserSpecificData(User user) async {
8766
_logger.info('Initializing user-specific data for user ID: ${user.id}');
88-
8967
await Future.wait([
9068
_ensureAppSettingsExist(user.id),
9169
_ensureUserContentPreferencesExist(user.id),
9270
_ensureInAppNotificationsExist(user.id),
93-
_ensureEngagementsExist(user.id),
94-
_ensureReportsExist(user.id),
95-
_ensureAppReviewsExist(user.id),
9671
]);
9772

9873
_logger.info(
@@ -235,126 +210,4 @@ class DemoDataInitializerService {
235210
// is not a critical failure for the app's startup.
236211
}
237212
}
238-
239-
/// Ensures that [Engagement]s exist for the given [userId].
240-
Future<void> _ensureEngagementsExist(String userId) async {
241-
try {
242-
final existing = await _engagementRepository.readAll(userId: userId);
243-
if (existing.items.isNotEmpty) {
244-
_logger.finer('Engagements already exist for user ID: $userId.');
245-
return;
246-
}
247-
248-
_logger.fine(
249-
'No Engagements found for user ID: $userId. Creating from fixture.',
250-
);
251-
252-
if (engagementFixturesData.isEmpty) {
253-
_logger.warning('engagementFixturesData is empty. No items to create.');
254-
return;
255-
}
256-
257-
// Filter engagements to only those not belonging to the fixture user.
258-
final engagementsToCreate = engagementFixturesData
259-
.where((e) => e.userId != 'fixture_user_id')
260-
.toList();
261-
262-
final userItems = engagementsToCreate.map(
263-
(i) => i.copyWith(userId: userId),
264-
);
265-
266-
await Future.wait(
267-
userItems.map(
268-
(item) => _engagementRepository.create(item: item, userId: userId),
269-
),
270-
);
271-
_logger.fine(
272-
'${userItems.length} Engagements from fixture created for user ID: $userId.',
273-
);
274-
} catch (e, s) {
275-
_logger.severe(
276-
'Error ensuring Engagements exist for user ID: $userId: $e',
277-
e,
278-
s,
279-
);
280-
}
281-
}
282-
283-
/// Ensures that [Report]s exist for the given [userId].
284-
Future<void> _ensureReportsExist(String userId) async {
285-
try {
286-
final existing = await _reportRepository.readAll(userId: userId);
287-
if (existing.items.isNotEmpty) {
288-
_logger.finer('Reports already exist for user ID: $userId.');
289-
return;
290-
}
291-
292-
_logger.fine(
293-
'No Reports found for user ID: $userId. Creating from fixture.',
294-
);
295-
296-
if (reportFixturesData.isEmpty) {
297-
_logger.warning('reportFixturesData is empty. No items to create.');
298-
return;
299-
}
300-
301-
final userItems = reportFixturesData.map(
302-
(i) => i.copyWith(reporterUserId: userId),
303-
);
304-
305-
await Future.wait(
306-
userItems.map(
307-
(item) => _reportRepository.create(item: item, userId: userId),
308-
),
309-
);
310-
_logger.fine(
311-
'${userItems.length} Reports from fixture created for user ID: $userId.',
312-
);
313-
} catch (e, s) {
314-
_logger.severe(
315-
'Error ensuring Reports exist for user ID: $userId: $e',
316-
e,
317-
s,
318-
);
319-
}
320-
}
321-
322-
/// Ensures that [AppReview]s exist for the given [userId].
323-
Future<void> _ensureAppReviewsExist(String userId) async {
324-
try {
325-
final existing = await _appReviewRepository.readAll(userId: userId);
326-
if (existing.items.isNotEmpty) {
327-
_logger.finer('AppReviews already exist for user ID: $userId.');
328-
return;
329-
}
330-
331-
_logger.fine(
332-
'No AppReviews found for user ID: $userId. Creating from fixture.',
333-
);
334-
335-
if (appReviewFixturesData.isEmpty) {
336-
_logger.warning('appReviewFixturesData is empty. No items to create.');
337-
return;
338-
}
339-
340-
final userItems = appReviewFixturesData.map(
341-
(i) => i.copyWith(userId: userId),
342-
);
343-
344-
await Future.wait(
345-
userItems.map(
346-
(item) => _appReviewRepository.create(item: item, userId: userId),
347-
),
348-
);
349-
_logger.fine(
350-
'${userItems.length} AppReviews from fixture created for user ID: $userId.',
351-
);
352-
} catch (e, s) {
353-
_logger.severe(
354-
'Error ensuring AppReviews exist for user ID: $userId: $e',
355-
e,
356-
s,
357-
);
358-
}
359-
}
360213
}

lib/app/services/demo_data_migration_service.dart

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,15 @@ class DemoDataMigrationService {
1717
required DataRepository<UserContentPreferences>
1818
userContentPreferencesRepository,
1919
required DataRepository<Engagement> engagementRepository,
20-
required DataRepository<Report> reportRepository,
21-
required DataRepository<AppReview> appReviewRepository,
2220
}) : _appSettingsRepository = appSettingsRepository,
2321
_userContentPreferencesRepository = userContentPreferencesRepository,
2422
_engagementRepository = engagementRepository,
25-
_reportRepository = reportRepository,
26-
_appReviewRepository = appReviewRepository,
2723
_logger = Logger('DemoDataMigrationService');
2824

2925
final DataRepository<AppSettings> _appSettingsRepository;
3026
final DataRepository<UserContentPreferences>
3127
_userContentPreferencesRepository;
3228
final DataRepository<Engagement> _engagementRepository;
33-
final DataRepository<Report> _reportRepository;
34-
final DataRepository<AppReview> _appReviewRepository;
3529
final Logger _logger;
3630

3731
/// Migrates user settings and content preferences from an old anonymous
@@ -190,54 +184,5 @@ class DemoDataMigrationService {
190184
);
191185
}
192186

193-
// Migrate Reports
194-
try {
195-
final oldReports = await _reportRepository.readAll(userId: oldUserId);
196-
for (final oldReport in oldReports.items) {
197-
final newReport = oldReport.copyWith(reporterUserId: newUserId);
198-
await _reportRepository.create(item: newReport, userId: newUserId);
199-
await _reportRepository.delete(id: oldReport.id, userId: oldUserId);
200-
}
201-
_logger.fine(
202-
'[DemoDataMigrationService] ${oldReports.items.length} '
203-
'reports migrated successfully from $oldUserId to $newUserId.',
204-
);
205-
} catch (e, s) {
206-
_logger.severe(
207-
'[DemoDataMigrationService] Error migrating reports from '
208-
'$oldUserId to $newUserId: $e',
209-
e,
210-
s,
211-
);
212-
}
213-
214-
// Migrate AppReviews
215-
try {
216-
final oldAppReviews = await _appReviewRepository.readAll(
217-
userId: oldUserId,
218-
);
219-
for (final oldAppReview in oldAppReviews.items) {
220-
final newAppReview = oldAppReview.copyWith(userId: newUserId);
221-
await _appReviewRepository.create(
222-
item: newAppReview,
223-
userId: newUserId,
224-
);
225-
await _appReviewRepository.delete(
226-
id: oldAppReview.id,
227-
userId: oldUserId,
228-
);
229-
}
230-
_logger.fine(
231-
'[DemoDataMigrationService] ${oldAppReviews.items.length} '
232-
'app reviews migrated successfully from $oldUserId to $newUserId.',
233-
);
234-
} catch (e, s) {
235-
_logger.severe(
236-
'[DemoDataMigrationService] Error migrating app reviews from '
237-
'$oldUserId to $newUserId: $e',
238-
e,
239-
s,
240-
);
241-
}
242187
}
243188
}

lib/bootstrap.dart

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -508,9 +508,9 @@ Future<Widget> bootstrap(
508508
cacheDuration: const Duration(minutes: 5),
509509
logger: logger,
510510
);
511-
logger.fine('ContentLimitationService initialized.');
512-
513-
logger.fine('AppReviewService initialized.');
511+
logger
512+
..fine('ContentLimitationService initialized.')
513+
..fine('AppReviewService initialized.');
514514

515515
// Conditionally instantiate DemoDataMigrationService
516516
final demoDataMigrationService =
@@ -519,8 +519,6 @@ Future<Widget> bootstrap(
519519
appSettingsRepository: appSettingsRepository,
520520
userContentPreferencesRepository: userContentPreferencesRepository,
521521
engagementRepository: engagementRepository,
522-
reportRepository: reportRepository,
523-
appReviewRepository: appReviewRepository,
524522
)
525523
: null;
526524
logger.fine(
@@ -538,16 +536,10 @@ Future<Widget> bootstrap(
538536
appSettingsRepository: appSettingsRepository,
539537
userContentPreferencesRepository: userContentPreferencesRepository,
540538
inAppNotificationRepository: inAppNotificationRepository,
541-
engagementRepository: engagementRepository,
542-
reportRepository: reportRepository,
543-
appReviewRepository: appReviewRepository,
544539
appSettingsFixturesData: appSettingsFixturesData,
545540
userContentPreferencesFixturesData:
546541
getUserContentPreferencesFixturesData(),
547542
inAppNotificationsFixturesData: inAppNotificationsFixturesData,
548-
engagementFixturesData: getEngagementsFixturesData(),
549-
reportFixturesData: getReportsFixturesData(),
550-
appReviewFixturesData: getAppReviewsFixturesData(),
551543
)
552544
: null;
553545
logger

pubspec.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ packages:
185185
dependency: "direct main"
186186
description:
187187
path: "."
188-
ref: b1110a45182e5b4439b24e1a6a18bdeb5e048fb7
189-
resolved-ref: b1110a45182e5b4439b24e1a6a18bdeb5e048fb7
188+
ref: "8e02a696ee8921c68160cd15bd1c55effb5212a7"
189+
resolved-ref: "8e02a696ee8921c68160cd15bd1c55effb5212a7"
190190
url: "https://github.com/flutter-news-app-full-source-code/core.git"
191191
source: git
192192
version: "1.3.1"

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ dependency_overrides:
147147
core:
148148
git:
149149
url: https://github.com/flutter-news-app-full-source-code/core.git
150-
ref: b1110a45182e5b4439b24e1a6a18bdeb5e048fb7
150+
ref: 8e02a696ee8921c68160cd15bd1c55effb5212a7
151151
http_client:
152152
git:
153153
url: https://github.com/flutter-news-app-full-source-code/http-client.git

0 commit comments

Comments
 (0)