refactor(bruno): reorganize file structure from bruno-yaml to flat bruno directory
- Move all files from bruno-yaml/* to bruno/* - Maintains existing directory structure within categories - Updates bruno/user/auth files with OAuth2 refresh token flow - Updates bruno/user/profile files for user profile management - Adds bruno/dashboard/ directory with dashboard API tests - Preserves all existing test scenarios and OpenCollection YAML format - No functional changes - file reorganization only
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
info:
|
||||
name: Create Collection with Dashboard
|
||||
type: http
|
||||
seq: 4
|
||||
http:
|
||||
method: POST
|
||||
url: '{{base_url}}/api/collections'
|
||||
auth: inherit
|
||||
runtime:
|
||||
scripts:
|
||||
- type: tests
|
||||
code: "test(\"creates collection successfully\", function() {\n expect(res.status).to.eql(201);"
|
||||
|
||||
docs: |-
|
||||
Create a new collection with dashboard visibility enabled.
|
||||
|
||||
**Endpoint**: POST /api/collections
|
||||
**Auth**: Required (Bearer token)
|
||||
|
||||
## Request Body
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
|-------|------|----------|-------------|
|
||||
| name | string | Yes | Collection name |
|
||||
| description | string | No | Collection description |
|
||||
| color | string | No | Hex color code |
|
||||
| icon | string | No | Icon emoji or name |
|
||||
| show_on_dashboard | boolean | No | Show on dashboard (default: false) |
|
||||
|
||||
## Example Request
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "My Favorites",
|
||||
"description": "My favorite books",
|
||||
"color": "#FF5733",
|
||||
"icon": "⭐",
|
||||
"show_on_dashboard": true
|
||||
@@ -0,0 +1,52 @@
|
||||
info:
|
||||
name: Get Dashboard Sections
|
||||
type: http
|
||||
seq: 1
|
||||
http:
|
||||
method: GET
|
||||
url: '{{base_url}}/api/dashboard/sections'
|
||||
auth: inherit
|
||||
body:
|
||||
type: none
|
||||
runtime:
|
||||
scripts:
|
||||
- type: tests
|
||||
code: "test(\"status must be 200 with auth\", function() {\n expect(res.status).to.eql(200);"
|
||||
|
||||
docs: |-
|
||||
Get all dashboard sections for a specific library.
|
||||
|
||||
**Endpoint**: GET /api/dashboard/sections
|
||||
**Auth**: Required (Bearer token via auth: inherit)
|
||||
|
||||
## Query Parameters
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
|-----------|------|----------|-------------|
|
||||
| library_id | string | Yes | Library UUID |
|
||||
|
||||
## Response
|
||||
|
||||
Returns array of sections including:
|
||||
- Smart sections (continue-reading, in-progress, recently-added, etc.)
|
||||
- User collections marked with show_on_dashboard: true
|
||||
|
||||
## Section Types
|
||||
|
||||
| Type | Description |
|
||||
|------|-------------|
|
||||
| smart | Auto-generated sections based on user activity |
|
||||
| collection | User-created collections with dashboard enabled |
|
||||
|
||||
## Example Response
|
||||
|
||||
```json
|
||||
{
|
||||
"sections": [
|
||||
{
|
||||
"id": "continue-reading",
|
||||
"type": "smart",
|
||||
"title": "Continue Reading",
|
||||
"icon": "📖",
|
||||
"items": [...],
|
||||
"view_all_url": "/section/continue-reading"
|
||||
@@ -0,0 +1,30 @@
|
||||
info:
|
||||
name: Get Dashboard Sections by Library
|
||||
type: http
|
||||
seq: 3
|
||||
http:
|
||||
method: GET
|
||||
url: '{{base_url}}/api/dashboard/sections'
|
||||
auth: inherit
|
||||
runtime:
|
||||
scripts:
|
||||
- type: tests
|
||||
code: "test(\"status must be 200\", function() {\n expect(res.status).to.eql(200);"
|
||||
|
||||
docs: |-
|
||||
Get all dashboard sections for a specific library.
|
||||
|
||||
**Endpoint**: GET /api/dashboard/sections
|
||||
**Auth**: Required (Bearer token)
|
||||
|
||||
## Query Parameters
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
|-----------|------|----------|-------------|
|
||||
| library_id | string | Yes | Library UUID |
|
||||
|
||||
## Response
|
||||
|
||||
Returns array of sections including:
|
||||
- Smart sections (continue-reading, in-progress, recently-added, etc.)
|
||||
- User collections marked for dashboard
|
||||
@@ -0,0 +1,17 @@
|
||||
info:
|
||||
name: Update Collection Dashboard Visibility
|
||||
type: http
|
||||
seq: 5
|
||||
http:
|
||||
method: PUT
|
||||
url: '{{base_url}}/api/collections/{{collection_id}}'
|
||||
auth: inherit
|
||||
runtime:
|
||||
scripts:
|
||||
- type: tests
|
||||
code: "test(\"updates collection successfully\", function() {\n expect(res.status).to.eql(200);"
|
||||
|
||||
docs: |-
|
||||
Update collection settings including dashboard visibility.
|
||||
|
||||
**Endpoint**: PUT /api/collections/{id
|
||||
@@ -0,0 +1,36 @@
|
||||
info:
|
||||
name: Update Dashboard Preferences
|
||||
type: http
|
||||
seq: 2
|
||||
http:
|
||||
method: POST
|
||||
url: '{{base_url}}/api/dashboard/preferences'
|
||||
auth: inherit
|
||||
runtime:
|
||||
scripts:
|
||||
- type: tests
|
||||
code: "test(\"status must be 200 with valid request\", function() {\n expect(res.status).to.eql(200);"
|
||||
|
||||
docs: |-
|
||||
Update dashboard preferences for the authenticated user.
|
||||
|
||||
**Endpoint**: POST /api/dashboard/preferences
|
||||
**Auth**: Required (Bearer token)
|
||||
|
||||
## Request Body
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
|-------|------|----------|-------------|
|
||||
| library_id | string | Yes | Library UUID |
|
||||
| hidden_sections | array | No | Section IDs to hide |
|
||||
| section_order | array | No | Section IDs in custom order |
|
||||
| items_per_section | int | No | Items to show per section (10-50) |
|
||||
|
||||
## Example Request
|
||||
|
||||
```json
|
||||
{
|
||||
"library_id": "cc23c3a7-f8fb-451a-a78d-2a16df1b725a",
|
||||
"hidden_sections": ["recently-added"],
|
||||
"section_order": ["continue-reading", "in-progress"],
|
||||
"items_per_section": 25
|
||||
Reference in New Issue
Block a user