Initial commit: YouTube Studio Flow (backend, frontend, infrastructure, docs)
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
# Saved Views API
|
||||
|
||||
Base path: `/api/v1/saved-views`
|
||||
|
||||
All endpoints require `Authorization: Bearer <jwt>`.
|
||||
|
||||
Related: [[02 - Videos API]], [[11 - Bulk Jobs API]]
|
||||
|
||||
---
|
||||
|
||||
## GET /saved-views
|
||||
|
||||
List all saved views for the current team.
|
||||
|
||||
**Response:** `SavedView[]`
|
||||
|
||||
---
|
||||
|
||||
## GET /saved-views/tabs
|
||||
|
||||
List saved views that are pinned as tabs, ordered by `tabOrder`.
|
||||
|
||||
**Response:** `SavedView[]`
|
||||
|
||||
---
|
||||
|
||||
## POST /saved-views
|
||||
|
||||
Create a new saved view. Requires `EDITOR` role.
|
||||
|
||||
**Request body:**
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "string",
|
||||
"description": "string",
|
||||
"isGlobal": false,
|
||||
"queryJson": {
|
||||
"lintStatus": "ERROR"
|
||||
},
|
||||
"columnsJson": {
|
||||
"visible": [],
|
||||
"order": []
|
||||
},
|
||||
"sortJson": {
|
||||
"field": "publishedAt",
|
||||
"order": "desc"
|
||||
},
|
||||
"pinnedAsTab": false,
|
||||
"tabOrder": null
|
||||
}
|
||||
```
|
||||
|
||||
**Field notes:**
|
||||
|
||||
| Field | Notes |
|
||||
|---|---|
|
||||
| `isGlobal` | If `true`, the view is visible to all team members. If `false`, it is personal. |
|
||||
| `queryJson` | Filter parameters — same shape as the query params accepted by `GET /videos`. |
|
||||
| `columnsJson` | Column visibility and order configuration for the video table. |
|
||||
| `sortJson` | Default sort field and direction for the view. |
|
||||
| `pinnedAsTab` | Whether the view appears as a tab in the video list UI. |
|
||||
| `tabOrder` | Integer position in the tab bar. `null` if not pinned. |
|
||||
|
||||
---
|
||||
|
||||
## PATCH /saved-views/:id
|
||||
|
||||
Update a saved view. Requires `EDITOR` role.
|
||||
|
||||
**Request body:** Same fields as `POST /saved-views`, all optional.
|
||||
|
||||
---
|
||||
|
||||
## DELETE /saved-views/:id
|
||||
|
||||
Delete a saved view. Requires `ADMIN` role.
|
||||
|
||||
---
|
||||
|
||||
## POST /saved-views/:id/execute
|
||||
|
||||
Execute the saved view's stored query and return the matching video IDs.
|
||||
|
||||
**Response:**
|
||||
|
||||
```json
|
||||
{ "videoIds": ["cuid", "cuid"] }
|
||||
```
|
||||
|
||||
> The returned `videoIds` can be passed directly to bulk job endpoints such as `POST /bulk-jobs/push-pending` or `POST /bulk-jobs/preview`. See [[11 - Bulk Jobs API]].
|
||||
Reference in New Issue
Block a user