mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-08-02 01:05:25 +02:00
Notification endpoints (#3096)
* Initial notification schema * Add: notification event and settings schema * Add: NotificationController * Update bundled spec * Fix: `operationId` typos * Fix: library response to be arroy of objects * Fix: notification ID is not uuid * Add: `nullable` notification creation parameters * Nullable libraryId schema * Remove: `id` from Notification requestBody * Fix: `allOf` for `libraryItemSequence` * Fix: required `id` in wrong body * Fix: libraryItem typos * Update: bundled spec
This commit is contained in:
parent
09bcc1191f
commit
7d05317357
7 changed files with 961 additions and 8 deletions
|
@ -111,9 +111,12 @@ paths:
|
|||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '../objects/Library.yaml#/components/schemas/library'
|
||||
type: object
|
||||
properties:
|
||||
libraries:
|
||||
type: array
|
||||
items:
|
||||
$ref: '../objects/Library.yaml#/components/schemas/library'
|
||||
post:
|
||||
operationId: createLibrary
|
||||
summary: Create a new library on server
|
||||
|
|
223
docs/controllers/NotificationController.yaml
Normal file
223
docs/controllers/NotificationController.yaml
Normal file
|
@ -0,0 +1,223 @@
|
|||
components:
|
||||
responses:
|
||||
notification200:
|
||||
description: Notification endpoint success.
|
||||
content:
|
||||
text/html:
|
||||
schema:
|
||||
type: string
|
||||
example: OK
|
||||
notification404:
|
||||
description: An admin user is required or notification with the given ID not found.
|
||||
content:
|
||||
text/html:
|
||||
schema:
|
||||
type: string
|
||||
example: Series not found.
|
||||
paths:
|
||||
/api/notifications:
|
||||
get:
|
||||
operationId: getNotifications
|
||||
description: Get all Apprise notification events and notification settings for server.
|
||||
tags:
|
||||
- Notification
|
||||
responses:
|
||||
'200':
|
||||
description: Success
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
data:
|
||||
type: object
|
||||
properties:
|
||||
events:
|
||||
type: array
|
||||
items:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/NotificationEvent'
|
||||
settings:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
|
||||
'404':
|
||||
$ref: '#/components/responses/notification404'
|
||||
patch:
|
||||
operationId: updateNotificationSettings
|
||||
description: Update Notification settings.
|
||||
tags:
|
||||
- Notification
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
appriseApiUrl:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/appriseApiUrl'
|
||||
maxFailedAttempts:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/maxFailedAttempts'
|
||||
maxNotificationQueue:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/maxNotificationQueue'
|
||||
responses:
|
||||
'200':
|
||||
$ref: '#/components/responses/notification200'
|
||||
'404':
|
||||
$ref: '#/components/responses/notification404'
|
||||
post:
|
||||
operationId: createNotification
|
||||
description: Update Notification settings.
|
||||
tags:
|
||||
- Notification
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
libraryId:
|
||||
$ref: '../objects/Library.yaml#/components/schemas/libraryIdNullable'
|
||||
eventName:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/notificationEventName'
|
||||
urls:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/urls'
|
||||
titleTemplate:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/titleTemplate'
|
||||
bodyTemplate:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/bodyTemplate'
|
||||
enabled:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/enabled'
|
||||
type:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/notificationType'
|
||||
required:
|
||||
- eventName
|
||||
- urls
|
||||
- titleTemplate
|
||||
- bodyTemplate
|
||||
responses:
|
||||
'200':
|
||||
description: Success
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
settings:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
|
||||
'404':
|
||||
$ref: '#/components/responses/notification404'
|
||||
/api/notificationdata:
|
||||
get:
|
||||
operationId: getNotificationEventData
|
||||
description: Get all Apprise notification event data for the server.
|
||||
tags:
|
||||
- Notification
|
||||
responses:
|
||||
'200':
|
||||
description: Success
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
events:
|
||||
type: array
|
||||
items:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/NotificationEvent'
|
||||
'404':
|
||||
$ref: '#/components/responses/notification404'
|
||||
/api/notifications/test:
|
||||
get:
|
||||
operationId: sendDefaultTestNotification
|
||||
description: Send a test notification.
|
||||
tags:
|
||||
- Notification
|
||||
parameters:
|
||||
- in: query
|
||||
name: fail
|
||||
description: Whether to intentionally cause the notification to fail. `0` for false, `1` for true.
|
||||
schema:
|
||||
type: integer
|
||||
responses:
|
||||
'200':
|
||||
$ref: '#/components/responses/notification200'
|
||||
'404':
|
||||
$ref: '#/components/responses/notification404'
|
||||
/api/notifications/{id}:
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
description: The ID of the notification.
|
||||
required: true
|
||||
schema:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/notificationId'
|
||||
delete:
|
||||
operationId: deleteNotification
|
||||
description: Delete the notification by ID and return the notification settings.
|
||||
tags:
|
||||
- Notification
|
||||
responses:
|
||||
'200':
|
||||
description: Success
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
settings:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
|
||||
'404':
|
||||
$ref: '#/components/responses/notification404'
|
||||
patch:
|
||||
operationId: updateNotification
|
||||
description: Update individual Notification
|
||||
tags:
|
||||
- Notification
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
libraryId:
|
||||
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||
eventName:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/notificationEventName'
|
||||
urls:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/urls'
|
||||
titleTemplate:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/titleTemplate'
|
||||
bodyTemplate:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/bodyTemplate'
|
||||
enabled:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/enabled'
|
||||
type:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/notificationType'
|
||||
responses:
|
||||
'200':
|
||||
description: Success
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
settings:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
|
||||
'404':
|
||||
$ref: '#/components/responses/notification404'
|
||||
/api/notifications/{id}/test:
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
description: The ID of the notification.
|
||||
required: true
|
||||
schema:
|
||||
$ref: '../objects/Notification.yaml#/components/schemas/notificationId'
|
||||
get:
|
||||
operationId: sendTestNotification
|
||||
description: Send a test to the given notification.
|
||||
tags:
|
||||
- Notification
|
||||
responses:
|
||||
'200':
|
||||
$ref: '#/components/responses/notification200'
|
||||
'404':
|
||||
$ref: '#/components/responses/notification404'
|
Loading…
Add table
Add a link
Reference in a new issue