downgrade method

ModerationDecision downgrade()

Implementation

ModerationDecision downgrade() {
  final causes = <ModerationCause>[];
  for (final cause in this.causes) {
    causes.add(switch (cause) {
      UModerationCauseBlocking(:final data) => ModerationCause.blocking(
        data: data.copyWith(downgraded: true),
      ),
      UModerationCauseBlockedBy(:final data) => ModerationCause.blockedBy(
        data: data.copyWith(downgraded: true),
      ),
      UModerationCauseBlockOther(:final data) => ModerationCause.blockOther(
        data: data.copyWith(downgraded: true),
      ),
      UModerationCauseLabel(:final data) => ModerationCause.label(
        data: data.copyWith(downgraded: true),
      ),
      UModerationCauseMuted(:final data) => ModerationCause.muted(
        data: data.copyWith(downgraded: true),
      ),
      UModerationCauseMuteWord(:final data) => ModerationCause.muteWord(
        data: data.copyWith(downgraded: true),
      ),
      UModerationCauseHidden(:final data) => ModerationCause.hidden(
        data: data.copyWith(downgraded: true),
      ),
    });
  }

  return ModerationDecision._(
    did: did,
    me: me,
    behaviors: behaviors,
    causes: causes,
  );
}