From 73c20ff308be2b1acc5cea99dff65a6e5d422202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Istv=C3=A1n=20So=C3=B3s?= Date: Wed, 2 Oct 2024 14:28:32 +0200 Subject: [PATCH] Fix: automatic resolve status. (#8095) --- .../admin/actions/moderation_case_resolve.dart | 4 ++-- app/lib/admin/models.dart | 16 +--------------- app/test/admin/moderation_case_resolve_test.dart | 2 +- 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/app/lib/admin/actions/moderation_case_resolve.dart b/app/lib/admin/actions/moderation_case_resolve.dart index a21ca47454..48a8029a1d 100644 --- a/app/lib/admin/actions/moderation_case_resolve.dart +++ b/app/lib/admin/actions/moderation_case_resolve.dart @@ -61,7 +61,7 @@ Closes the moderation case and updates the status based on the actions logged on mc.resolved = clock.now().toUtc(); - final hasModeratedAction = mc.getActionLog().hasModeratedAction(); + final hasModeratedAction = mc.getActionLog().isNotEmpty; if (status == null) { if (mc.kind == ModerationKind.notification) { @@ -73,7 +73,7 @@ Closes the moderation case and updates the status based on the actions logged on .emptyKey .append(ModerationCase, id: mc.appealedCaseId!)); final appealHadModeratedAction = - appealedCase.getActionLog().hasModeratedAction(); + appealedCase.getActionLog().isNotEmpty; if (appealHadModeratedAction) { status = hasModeratedAction ? ModerationStatus.moderationReverted diff --git a/app/lib/admin/models.dart b/app/lib/admin/models.dart index dd44b7fcea..ff4ebf8e41 100644 --- a/app/lib/admin/models.dart +++ b/app/lib/admin/models.dart @@ -442,21 +442,7 @@ class ModerationActionLog { Map toJson() => _$ModerationActionLogToJson(this); - /// Returns true if the final state of the actions has at least one moderation. - bool hasModeratedAction() { - final subjects = {}; - for (final entry in entries) { - switch (entry.moderationAction) { - case ModerationAction.apply: - subjects.add(entry.subject); - break; - case ModerationAction.revert: - subjects.remove(entry.subject); - break; - } - } - return subjects.isNotEmpty; - } + bool get isNotEmpty => entries.isNotEmpty; } enum ModerationAction { diff --git a/app/test/admin/moderation_case_resolve_test.dart b/app/test/admin/moderation_case_resolve_test.dart index b569e3b2c7..da7889af38 100644 --- a/app/test/admin/moderation_case_resolve_test.dart +++ b/app/test/admin/moderation_case_resolve_test.dart @@ -115,7 +115,7 @@ void main() { reason: 'The package violated our policy.', ); - final mc = await _prepare(apply: true, appealCaseId: mc1.caseId); + final mc = await _prepare(apply: false, appealCaseId: mc1.caseId); expect(await _close(mc.caseId), 'moderation-reverted'); });