Skip to content

fix: 非公開の本へのコメントを禁止する - #269

Merged
Rasukarusan merged 1 commit into
masterfrom
codex-ha043o
Aug 9, 2026
Merged

Rasukarusan merged 1 commit into
masterfrom
codex-ha043o

Conversation

@Rasukarusan

Copy link
Copy Markdown
Owner

Motivation

  • 非公開の本に他ユーザーがコメントできないようにサーバー側で確実に拒否するための処置を追加しました。
  • 存在しない書籍へのコメント試行を早期に検出して明確なエラーを返すことで不整合を防ぎます。

Description

  • IBookCommentRepository に isBookPublic(bookId): Promise<boolean | null> を追加し、BookCommentRepository に実装を追加して isPublicMemo を返すようにしました。
  • CreateBookCommentUseCase.execute 内で isBookPublic を呼んで存在チェックと公開状態チェックを行い、存在しない場合は 書籍が見つかりません、非公開の場合は 非公開の書籍にはコメントできません を投げて処理を中断するようにしました。
  • リポジトリ層の create でも公開状態を再確認して、事前確認後に非公開へ変更されていた場合に保存しない防御を追加しました。
  • フロントエンドの CommentSection に canComment プロパティを追加して非公開時は投稿フォームの代わりに案内文を表示するようにし、BookDetailReadModal で book.isPublicMemo を渡すようにしました。
  • 非公開・未存在の書籍に関するユニットテストを apps/api/src/application/usecases/book-comments/create-book-comment.spec.ts に追加しました。

Testing

  • pnpm --filter api test -- --runInBand application/usecases/book-comments/create-book-comment.spec.ts を実行し、対象スペックは 5 passed で成功しました。
  • PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING=1 pnpm --filter api exec prisma generate を実行し、その後 pnpm --filter api check-types と pnpm --filter web check-types を実行して型チェックを通過しました。
  • pnpm --filter api lint と pnpm --filter web lint を実行しエラーは出ておらず警告のみ確認しました。

Codex Task

@vercel

vercel Bot commented Aug 9, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
kidoku Ready Ready Preview Aug 9, 2026 3:15am

@Rasukarusan
Rasukarusan merged commit 9d32b25 into master Aug 9, 2026
7 of 8 checks passed
@Rasukarusan
Rasukarusan deleted the codex-ha043o branch August 9, 2026 03:13

This branch was previously deployed

1 inactive deployment
Preview — 7ea9f305 Deployed Aug 9, 2026 by Rasukarusan via deploy #14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant