microcms-js-sdk icon indicating copy to clipboard operation
microcms-js-sdk copied to clipboard

【DO NOT MERGE】updateのリクエストにisDraft追加

Open wato787 opened this issue 2 months ago • 2 comments

Summary by CodeRabbit

  • 新機能
    • 更新操作でドラフト保存が可能になりました(isDraft フラグ指定でドラフトとして更新)。
  • パブリックAPIの変更
    • 更新リクエストにオプションの isDraft フィールドが追加され、更新呼び出しで指定可能になりました。
  • テスト
    • ドラフト/非ドラフト双方の更新フローを検証するテストを追加・更新しました。
  • ドキュメント
    • README と日本語ドキュメントに「ドラフト更新」の使用例を追加し、関連コメントを整理しました。

✏️ Tip: You can customize this high-level summary in your review settings.

wato787 avatar Nov 27 '25 04:11 wato787

Walkthrough

更新操作にドラフト対応を追加しました。UpdateRequestisDraft?: boolean を追加し、createClientupdate 実装で isDraft を受け取り queries = isDraft ? { status: 'draft' } : {} を作成して makeRequest に渡すように変更。テストとドキュメントにドラフト更新の例と検証を追加しています。

変更内容

コホート / ファイル 変更サマリー
型定義
src/types.ts
UpdateRequest<T> インターフェースに isDraft?: boolean オプショナルプロパティを追加
クライアント実装
src/createClient.ts
update メソッドで isDraft = false を受け取り、queries = isDraft ? { status: 'draft' } : {} を生成して makeRequest に渡すロジックを追加
テスト更新
tests/write.test.ts
テストサーバーモックが URL の status クエリを解析して、patchListApiMockFn/patchObjectApiMockFn の第1引数に 'draft' または null を渡すよう変更。既存テストを null 呼び出しに更新し、ドラフト更新の新規テストを追加
ドキュメント
README.md, README_jp.md
「下書き更新 (isDraft)」の使用例を追加し、古い注釈(料金に関するコメント)を削除。日本語版にも同等の例を追加

Sequence Diagram

sequenceDiagram
    participant Client
    participant UpdateFn as update(...)
    participant MakeReq as makeRequest
    participant API

    rect rgb(240,248,255)
    Note over Client,API: 非ドラフト更新 (isDraft = false)
    Client->>UpdateFn: update({ isDraft: false, ... })
    UpdateFn->>UpdateFn: queries = {}
    UpdateFn->>MakeReq: makeRequest(..., queries)
    MakeReq->>API: PATCH /path
    end

    rect rgb(245,255,240)
    Note over Client,API: ドラフト更新 (isDraft = true)
    Client->>UpdateFn: update({ isDraft: true, ... })
    UpdateFn->>UpdateFn: queries = { status: 'draft' }
    UpdateFn->>MakeReq: makeRequest(..., queries)
    MakeReq->>API: PATCH /path?status=draft
    end

推定コードレビュー工数

🎯 3 (Moderate) | ⏱️ ~20–30 分

  • 注目ポイント:
    • src/createClient.ts: isDraft によるクエリ生成と makeRequest 呼び出しの引数整合性(既存のパス/クエリ結合ロジックとの整合)。
    • src/types.ts: public API 型の変更による影響範囲(型利用箇所の確認)。
    • tests/write.test.ts: モック呼び出しシグネチャとアサーションの適合性、ドラフトケースの網羅。

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed プルリクエストのタイトルは、UpdateRequestに isDraft パラメータを追加するという主要な変更を正確に説明しており、変更内容と完全に関連しています。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment
  • [ ] Commit unit tests in branch add-draft-to-patch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Nov 27 '25 04:11 coderabbitai[bot]

TODO:APIのリリース後にマージしてPublishする

wato787 avatar Nov 27 '25 05:11 wato787