Skip to content

Commit 8bae6eb

Browse files
authored
Merge pull request #87 from flutter-news-app-full-source-code/refactor/consolidate-moderation-status
Refactor/consolidate moderation status
2 parents eded8c4 + ce4211c commit 8bae6eb

File tree

15 files changed

+77
-153
lines changed

15 files changed

+77
-153
lines changed

lib/src/enums/comment_status.dart

Lines changed: 0 additions & 27 deletions
This file was deleted.

lib/src/enums/enums.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ export 'app_text_scale_factor.dart';
88
export 'app_user_role.dart';
99
export 'banner_ad_shape.dart';
1010
export 'comment_report_reason.dart';
11-
export 'comment_status.dart';
1211
export 'content_status.dart';
1312
export 'content_type.dart';
1413
export 'dashboard_user_role.dart';
@@ -21,10 +20,10 @@ export 'feed_item_click_behavior.dart';
2120
export 'feed_item_density.dart';
2221
export 'feed_item_image_style.dart';
2322
export 'headline_report_reason.dart';
23+
export 'moderation_status.dart';
2424
export 'push_notification_provider.dart';
2525
export 'push_notification_subscription_delivery_type.dart';
2626
export 'reaction_type.dart';
27-
export 'report_status.dart';
2827
export 'reportable_entity.dart';
2928
export 'sort_order.dart';
3029
export 'source_report_reason.dart';
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import 'package:json_annotation/json_annotation.dart';
2+
3+
/// {@template moderation_status}
4+
/// Defines the moderation status of a user-submitted content, such as a
5+
/// comment or a report.
6+
/// {@endtemplate}
7+
@JsonEnum()
8+
enum ModerationStatus {
9+
/// The item has been submitted and is awaiting moderation.
10+
@JsonValue('pendingReview')
11+
pendingReview,
12+
13+
/// The item has been reviewed and a decision has been made.
14+
@JsonValue('resolved')
15+
resolved,
16+
}

lib/src/enums/report_status.dart

Lines changed: 0 additions & 19 deletions
This file was deleted.

lib/src/fixtures/headline_comments.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,10 @@ List<Comment> getHeadlineCommentsFixturesData({
5454
for (var j = 0; j < 10; j++) {
5555
final commentIndex = i * 10 + j;
5656

57-
// Vary the status for realism
58-
var status = CommentStatus.approved;
57+
// Vary the status for realism. Default to resolved.
58+
var status = ModerationStatus.resolved;
5959
if (commentIndex % 15 == 0) {
60-
status = CommentStatus.pendingReview;
61-
} else if (commentIndex % 25 == 0) {
62-
status = CommentStatus.rejected;
60+
status = ModerationStatus.pendingReview;
6361
}
6462

6563
comments.add(

lib/src/fixtures/reports.dart

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,10 @@ List<Report> getReportsFixturesData({DateTime? now}) {
3535

3636
for (var i = 0; i < users.length; i++) {
3737
final user = users[i];
38-
final headline = headlines[i];
39-
var status = ReportStatus.submitted;
40-
if (i % 3 == 0) {
41-
status = ReportStatus.inReview;
42-
} else if (i % 5 == 0) {
43-
status = ReportStatus.resolved;
38+
var status = ModerationStatus.pendingReview;
39+
// Every 4th report is resolved
40+
if (i > 0 && i % 4 == 0) {
41+
status = ModerationStatus.resolved;
4442
}
4543

4644
// Create a mix of report types
@@ -51,7 +49,7 @@ List<Report> getReportsFixturesData({DateTime? now}) {
5149
id: reportIds[i],
5250
reporterUserId: user.id,
5351
entityType: ReportableEntity.headline,
54-
entityId: headline.id,
52+
entityId: headlines[i].id,
5553
reason: headlineReasons[i % headlineReasons.length].name,
5654
additionalComments: 'This headline seems misleading.',
5755
status: status,

lib/src/models/user_generated_content/comment.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class Comment extends Equatable {
1515
const Comment({
1616
required this.language,
1717
required this.content,
18-
this.status = CommentStatus.pendingReview,
18+
this.status = ModerationStatus.pendingReview,
1919
});
2020

2121
/// Creates a [Comment] from JSON data.
@@ -29,7 +29,7 @@ class Comment extends Equatable {
2929
final String content;
3030

3131
/// The current moderation status of the comment.
32-
final CommentStatus status;
32+
final ModerationStatus status;
3333

3434
/// Converts this [Comment] instance to JSON data.
3535
Map<String, dynamic> toJson() => _$CommentToJson(this);
@@ -41,7 +41,7 @@ class Comment extends Equatable {
4141
Comment copyWith({
4242
String? content,
4343
Language? language,
44-
CommentStatus? status,
44+
ModerationStatus? status,
4545
}) {
4646
return Comment(
4747
language: language ?? this.language,

lib/src/models/user_generated_content/comment.g.dart

Lines changed: 6 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/models/user_generated_content/report.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'package:core/src/enums/comment_report_reason.dart';
22
import 'package:core/src/enums/headline_report_reason.dart';
3-
import 'package:core/src/enums/report_status.dart';
3+
import 'package:core/src/enums/moderation_status.dart';
44
import 'package:core/src/enums/reportable_entity.dart';
55
import 'package:core/src/enums/source_report_reason.dart';
66
import 'package:core/src/utils/json_helpers.dart';
@@ -64,7 +64,7 @@ class Report extends Equatable {
6464
final String reason;
6565

6666
/// The current moderation status of the report.
67-
final ReportStatus status;
67+
final ModerationStatus status;
6868

6969
/// Optional additional comments from the user providing more context.
7070
final String? additionalComments;
@@ -96,7 +96,7 @@ class Report extends Equatable {
9696
ReportableEntity? entityType,
9797
String? entityId,
9898
String? reason,
99-
ReportStatus? status,
99+
ModerationStatus? status,
100100
ValueWrapper<String?>? additionalComments,
101101
DateTime? createdAt,
102102
}) {

lib/src/models/user_generated_content/report.g.dart

Lines changed: 5 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)