更新
概要
フォルダー名の変更(リネーム)および親フォルダーへの移動を行う。folders.owner_id がセッションの user_id と一致する場合のみ許可する。
name と folder_id はいずれも任意。少なくとも一方を指定すること(両方省略はバリデーションエラー)。
必要なデータ
Headers
Path parameters
Body (JSON)
例(リネームのみ)
{
"name": "Archived Documents"
}
例(移動のみ)
{
"folder_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
}
例(リネーム + ルート直下へ移動)
{
"name": "Archived Documents",
"folder_id": null
}
レスポンス
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Archived Documents",
"folder_id": null,
"owner": {
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"username": "alice",
"avatar_url": null
},
"created_at": "2026-06-01T10:00:00+09:00",
"updated_at": "2026-06-01T11:30:00+09:00"
}
Folder オブジェクトのフィールド
OwnerInfo オブジェクト
エラーケース
実装要件
usersテーブルを JOIN してid/username/avatar_urlを取得し OwnerInfo を組み立てる(email/is_suspended/password_hash等の内部情報は含めない)- 実装時に
OwnerInfoDTO(または同等の struct)をmodels/に定義すること folder_idのnull明示(ルートへ移動)と省略(変更しない)を区別するため、Rust ではOption<Option<Uuid>>または#[serde(deserialize_with = ...)]等のパターンが必要nameとfolder_idが両方省略された場合は400 INVALID_INPUTfolder_idを指定した場合、自分自身または子孫フォルダーを親にしていないか循環参照チェック → 違反時400 INVALID_INPUT- 移動先
folder_idが指定された場合、存在・未削除・同一owner_idであることを検証(違反時404 NOT_FOUND) name変更時は同一親配下に同名フォルダーが既にあっても許可(重複チェックは行わない)- エラー形式: エラーレスポンスに準拠
- 必要コンポーネント: PostgreSQL