diff --git a/bruno/media-items/Create Media Item.bru b/bruno/media-items/Create Media Item.bru index ad12331..67f2db4 100644 --- a/bruno/media-items/Create Media Item.bru +++ b/bruno/media-items/Create Media Item.bru @@ -62,6 +62,33 @@ tests { return true; } + + test_create_media_item_no_folders(status, headers, body) { + if (status !== 400) { + throw new Error("Expected status 400 for library with no folders, got " + status); + } + + let data; + try { + data = JSON.parse(body); + } catch (e) { + throw new Error("Response body is not valid JSON"); + } + + if (!data || typeof data !== 'object') { + throw new Error("Expected error object in response"); + } + + if (!data.error || typeof data.error !== 'string') { + throw new Error("Expected error message in response"); + } + + if (!data.error.includes("folder")) { + throw new Error("Error message should mention folders requirement"); + } + + return true; + } } vars:pre-request { @@ -84,6 +111,11 @@ settings { **Authentication:** Required (Bearer token, admin only) + **Prerequisites** + - Library must have at least one folder configured before media items can be added + - Use `POST /api/libraries/{library_id}/folders` to add folders first + - See: [Add Library Folder](../../library/Add%20Library%20Folder.bru) + **Request Body:** - `library_id` (string, required): Library UUID - `title` (string, required): Media item title @@ -127,14 +159,37 @@ settings { - Case-insensitive deduplication (keeps version with punctuation if exists) - Example: `["acme corp", "ACME CORP.", "acme corp"]` → `["ACME CORP."]` + **Validation Error Response** + - **400 Bad Request** - Library has no folders: + ```json + { + "error": "Cannot add media items to a library with no folders. Please add at least one folder to the library first." + } + ``` + **Status Codes:** - 201: Media item created successfully - - 400: Invalid request data + - 400: Invalid request data OR library has no folders - 401: Unauthorized - 403: Forbidden (admin access required) - 404: Library not found - 500: Internal server error + **Setup Workflow Example:** + ```bash + # 1. Create library + POST /api/libraries + { "name": "My Books", "type": "ebooks" } + + # 2. Add folder to library (REQUIRED before adding media items) + POST /api/libraries/{library_id}/folders + { "folder_path": "/mnt/books/my-library" } + + # 3. Create media items (now that library has folders) + POST /api/media-items + { "library_id": "...", "title": "Book Title", ... } + ``` + **Examples:** - Create media item: `POST /api/media-items`