Initial library schema

This commit is contained in:
Nicholas Wallace 2024-05-06 02:35:15 +00:00
parent 76100b680e
commit 5fdfc9e454
3 changed files with 92 additions and 9 deletions

View file

@ -3,10 +3,75 @@ components:
oldLibraryId:
type: string
description: The ID of the libraries created on server version 2.2.23 and before.
format: "lib_[a-z0-9]{18}"
format: 'lib_[a-z0-9]{18}'
example: lib_o78uaoeuh78h6aoeif
libraryId:
type: string
description: The ID of the library.
format: uuid
example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
libraryName:
description: The name of the library.
type: string
example: My Audiobooks
librarySettings:
description: The settings for the library.
allOf:
- type: object
properties:
coverAspectRatio:
description: Whether the library should use square book covers. Must be 0 (for false) or 1 (for true).
type: integer
example: 1
disableWatcher:
description: Whether to disable the folder watcher for the library.
type: boolean
example: false
skipMatchingMediaWithAsin:
description: Whether to skip matching books that already have an ASIN.
type: boolean
example: false
skipMatchingMediaWithIsbn:
description: Whether to skip matching books that already have an ISBN.
type: boolean
example: false
autoScanCronExpression:
description: The cron expression for when to automatically scan the library folders. If null, automatic scanning will be disabled.
type: string
nullable: true
example: '0 0 0 * * *'
library:
description: A library object which includes either books or podcasts.
type: object
properties:
id:
$ref: '#/components/schemas/libraryId'
name:
$ref: '#/components/schemas/libraryName'
folders:
description: The folders that belong to the library.
type: array
items:
$ref: './Folder.yaml#/components/schemas/folder'
displayOrder:
description: Display position of the library in the list of libraries. Must be >= 1.
type: integer
example: 1
icon:
description: The selected icon for the library. See Library Icons for a list of possible icons.
type: string
example: 'audiobookshelf'
mediaType:
description: The type of media that the library contains. Will be `book` or `podcast`. (Read Only)
type: string
example: 'book'
provider:
description: Preferred metadata provider for the library. See Metadata Providers for a list of possible providers.
type: string
example: 'audible'
settings:
$ref: '#/components/schemas/librarySettings'
createdAt:
$ref: './../schemas.yaml#/components/schemas/createdAt'
lastUpdate:
$ref: './../schemas.yaml#/components/schemas/updatedAt'

Binary file not shown.

View file

@ -7,15 +7,16 @@ servers:
- url: http://localhost:3000
description: Development server
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
responses:
ok200:
description: OK
securitySchemes:
BearerAuth:
description: Bearer authentication
type: http
scheme: bearer
responses:
ok200:
description: OK
security:
- BearerAuth: []
- BearerAuth: []
paths:
/api/authors/{id}:
get:
@ -152,6 +153,23 @@ paths:
- $ref: './controllers/AuthorController.yaml#/components/schemas/authorUpdated'
404:
$ref: './controllers/AuthorController.yaml#/components/responses/author404'
/api/libraries:
get:
operationId: getLibraries
summary: Get all libraries on server
tags:
- Libraries
responses:
200:
description: getLibraries OK
content:
application/json:
schema:
type: array
items:
$ref: './objects/Library.yaml#/components/schemas/library'
tags:
- name: Authors
description: Author endpoints
- name: Libraries
description: Library endpoints