Repository navigation
moderation-warning-event: AccountEvent::Warned + 通報「警告で解決」+ 警告履歴 API - #60
Merged
Merged
Conversation
- kernel: AccountEvent::Warned { reason, warned_at } (event_name="warned")、Account::warn 追加。apply は version のみ更新し status は不変
- kernel: ReportResolution::Warned を追加 (resolved/dismissed は後方互換)
- application: WarnAccountUseCase / ListAccountWarningsUseCase / warn_report を instance_moderate チェック付きで追加
- driver: account_events (event_name='warned') から警告履歴を読む find_warnings、warned resolution の読み書き対応
- server: POST/GET /api/v1/admin/accounts/{id}/warnings、通報 resolve エンドポイントで resolution='warned' を受理 (省略/resolved は従来通り)
- ユースケース単体テスト + HTTP テスト: warn 発行・warned 解決・権限なし 403 (PermissionDenied)・二重クローズ拒否は既存経路で維持
Closes #59
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #60 +/- ##
==========================================
+ Coverage 75.99% 76.28% +0.28%
==========================================
Files 211 211
Lines 24601 24930 +329
==========================================
+ Hits 18696 19018 +322
- Misses 5905 5912 +7 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…l 単独ビルドで macros feature 未解決のため CI 失敗)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
issue #59 の実装。モデレーションに「警告」処分を追加する (org-accounts grill Q10 の実装)。
変更点
kernel
AccountEvent::Warned { reason, warned_at }を新設 (serde: tag type / snake_casewarned。account_events にevent_name='warned'で保存)。apply()は version 更新のみで status は不変 (Active のまま)。AccountStatus / CHECK 制約に変更なしAccount::warn(id, reason, current_version)コマンド追加ReportResolution::Warnedを追加 (Resolved/Dismissed は後方互換)AccountReadModel::find_warnings+AccountWarning { reason, warned_at }read modelapplication
WarnAccountUseCase/ListAccountWarningsUseCase(いずれもinstance_moderate()権限チェック、非権限は PermissionDenied → 403)ResolveReportUseCase::warn_report: 通報をWarnedでクローズ (close_reason 必須維持、二重クローズは従来通り Rejected/422)driver (postgres)
account_eventsからevent_name='warned' AND id=account_idの警告履歴 SQL (新テーブルなし)warnedresolution 読み書きserver
POST /api/v1/admin/accounts/{id}/warnings— 警告発行 (204)GET /api/v1/admin/accounts/{id}/warnings— 警告履歴 (200: [{reason, warned_at}])POST /api/v1/admin/reports/{id}/resolve— body に optionalresolutionを追加し"warned"を受理 (省略/"resolved" は従来挙動 = 後方互換)。設計判断: 専用エンドポイント追加ではなく既存 resolve エンドポイントの拡張 (packet の推奨案)検証
cargo fmt --check/cargo check --workspace/cargo clippy --workspace -- -D warnings: 全 PASScargo test --workspace: 266 passed / 0 failed / 227 ignored (ignored は DATABASE_URL 必須の既存 postgres/e2e テスト)git diff --check: cleanCloses #59