added delete option
This commit is contained in:
65
Docs/API.md
65
Docs/API.md
@@ -368,6 +368,71 @@ Return detailed information about a specific series.
|
||||
|
||||
Source: [src/server/api/anime.py](../src/server/api/anime.py#L713-L793)
|
||||
|
||||
### DELETE /api/anime/{anime_key}
|
||||
|
||||
Delete an anime series from the database, filesystem, or both. Requires
|
||||
authentication and explicit typed confirmation.
|
||||
|
||||
**Authentication:** Required
|
||||
|
||||
**Path Parameters:**
|
||||
| Parameter | Description |
|
||||
|-----------|-------------|
|
||||
| `anime_key` | Series key (primary identifier) |
|
||||
|
||||
**Request Body:**
|
||||
```json
|
||||
{
|
||||
"delete_database": true,
|
||||
"delete_folder": false,
|
||||
"confirm_text": "delete"
|
||||
}
|
||||
```
|
||||
|
||||
| Field | Type | Default | Description |
|
||||
|-------|------|---------|-------------|
|
||||
| `delete_database` | bool | `true` | Remove series and episodes from SQLite |
|
||||
| `delete_folder` | bool | `false` | Delete the series folder and all files |
|
||||
| `confirm_text` | string | — | Must be exactly `"delete"` (case-sensitive) |
|
||||
|
||||
**Response (200 OK):**
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"key": "attack-on-titan",
|
||||
"name": "Attack on Titan",
|
||||
"deleted_from_database": true,
|
||||
"deleted_folder": false,
|
||||
"folder_path": null,
|
||||
"database_error": null,
|
||||
"folder_error": null,
|
||||
"message": "Removed from database."
|
||||
}
|
||||
```
|
||||
|
||||
**Error Responses:**
|
||||
|
||||
| Status | Condition |
|
||||
|--------|-----------|
|
||||
| 400 | `confirm_text != "delete"` or neither flag is `true` |
|
||||
| 401 | Not authenticated |
|
||||
| 404 | Series `key` not found in database |
|
||||
| 500 | Unexpected server error |
|
||||
|
||||
**Deletion Modes:**
|
||||
|
||||
| Flags | Effect |
|
||||
|-------|--------|
|
||||
| `delete_database=true, delete_folder=false` | Removes series from SQLite. Folder on disk is preserved. |
|
||||
| `delete_database=false, delete_folder=true` | Deletes folder and all files. Database record preserved. |
|
||||
| `delete_database=true, delete_folder=true` | Full removal: database record deleted AND folder/files deleted. |
|
||||
|
||||
**Path Safety:** Folder deletion is blocked if the path is outside the configured anime base directory (path traversal protection via `is_safe_path`).
|
||||
|
||||
**WebSocket Broadcast:** On success, a `series_deleted` event is broadcast to all connected clients, causing the anime card to be removed from all browser sessions in real-time.
|
||||
|
||||
Source: [src/server/api/anime.py](../src/server/api/anime.py#L1759-L1840)
|
||||
|
||||
---
|
||||
|
||||
## 4. Download Queue Endpoints
|
||||
|
||||
Reference in New Issue
Block a user