Massive cleanup and violation fixing

This commit is contained in:
Nicholas Wallace 2024-05-18 22:25:52 +00:00
parent a0e915db17
commit 44deef3453
5 changed files with 99 additions and 265 deletions

View file

@ -8,115 +8,43 @@ components:
description: Whether the author was merged with another author. Will not exist if author was updated.
type: boolean
nullable: true
requestBody:
asin:
name: asin
in: requestBody
description: The Audible Identifier (ASIN).
schema:
$ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin'
authorDescription:
name: description
in: requestBody
description: The new description of the author.
schema:
type: string
nullable: true
example: Terry Goodkind is a #1 New York Times Bestselling Author and creator of the critically acclaimed masterwork, The Sword of Truth. He has written 30+ major, bestselling novels, has been published in more than 20 languages world-wide, and has sold more than 26 Million books. The Sword of Truth is a revered literary tour de force, comprised of 17 volumes, borne from over 25 years of dedicated writing.
authorInclude:
name: include
in: requestBody
description: A comma separated list of what to include with the author. The options are `items` and `series`. `series` will only have an effect if `items` is included.
schema:
type: string
example: 'items'
examples:
empty:
summary: Do not return library items
value: ''
itemOnly:
summary: Only return library items
value: 'items'
itemsAndSeries:
summary: Return library items and series
value: 'items,series'
description: A comma separated list of what to include with the author. The options are `items` and `series`. `series` will only have an effect if `items` is included. For example, the value `items,series` will include both library items and series.
type: string
example: 'items'
authorLibraryId:
name: library
in: requestBody
description: The ID of the library to to include filter included items from.
schema:
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
authorSearchName:
name: q
in: requestBody
description: The name of the author to use for searching.
schema:
type: string
example: Terry Goodkind
type: string
example: Terry Goodkind
authorName:
name: name
in: requestBody
description: The new name of the author.
schema:
$ref: '../objects/entities/Author.yaml#/components/schemas/authorName'
authorImagePath:
name: imagePath
in: requestBody
description: The new absolute path for the author image.
required: false
schema:
type: string
nullable: true
example: /metadata/authors/aut_z3leimgybl7uf3y4ab.jpg
$ref: '../objects/entities/Author.yaml#/components/schemas/authorName'
imageUrl:
name: url
in: requestBody
description: The URL of the image to add to the server
required: true
schema:
type: string
format: uri
example: https://images-na.ssl-images-amazon.com/images/I/51NoQTm33OL.__01_SX120_CR0,0,120,120__.jpg
type: string
format: uri
example: https://images-na.ssl-images-amazon.com/images/I/51NoQTm33OL.__01_SX120_CR0,0,120,120__.jpg
imageWidth:
name: width
in: requestBody
description: The requested width of image in pixels.
schema:
type: integer
default: 400
example: 400
type: integer
default: 400
example: 400
imageHeight:
name: height
in: requestBody
description: The requested height of image in pixels. If `null`, the height is scaled to maintain aspect ratio based on the requested width.
schema:
type: integer
nullable: true
default: null
example: 600
examples:
scaleHeight:
summary: Scale height with width
value: null
fixedHeight:
summary: Force height of image
value: 600
type: integer
nullable: true
default: null
example: 600
imageFormat:
name: format
in: requestBody
description: The requested output format.
schema:
type: string
default: jpeg
example: webp
type: string
default: jpeg
example: webp
imageRaw:
name: raw
in: requestBody
description: Return the raw image without scaling if true.
schema:
type: boolean
default: false
type: boolean
default: false
responses:
author200:
description: Author found.
@ -154,9 +82,9 @@ paths:
schema:
properties:
include:
$ref: '#/components/requestBody/authorInclude'
$ref: '#/components/schemas/authorInclude'
library:
$ref: '#/components/requestBody/authorLibraryId'
$ref: '#/components/schemas/authorLibraryId'
responses:
'200':
description: getAuthorById OK
@ -173,20 +101,19 @@ paths:
tags:
- Authors
requestBody:
required: true
description: The author object to update.
content:
application/json:
schema:
properties:
name:
$ref: '#/components/requestBody/authorName'
$ref: '#/components/schemas/authorName'
description:
$ref: '#/components/requestBody/authorDescription'
$ref: '../objects/entities/Author.yaml#/components/schemas/authorDescription'
imagePath:
$ref: '#/components/requestBody/authorImagePath'
$ref: '../objects/entities/Author.yaml#/components/schemas/authorImagePath'
asin:
$ref: '#/components/requestBody/asin'
$ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin'
responses:
'200':
description: updateAuthorById OK
@ -237,13 +164,13 @@ paths:
schema:
properties:
width:
$ref: '#/components/requestBody/imageWidth'
$ref: '#/components/schemas/imageWidth'
height:
$ref: '#/components/requestBody/imageHeight'
$ref: '#/components/schemas/imageHeight'
format:
$ref: '#/components/requestBody/imageFormat'
$ref: '#/components/schemas/imageFormat'
raw:
$ref: '#/components/requestBody/imageRaw'
$ref: '#/components/schemas/imageRaw'
responses:
'200':
description: getAuthorImageById OK
@ -268,15 +195,13 @@ paths:
description: Add an author image to the server. The image will be downloaded from the provided URL and stored on the server.
tags:
- Authors
requestBody:
$ref: '#/components/requestBody/imageUrl'
requestBody:
required: true
description: The author image to add by URL.
content:
application/json:
schema:
$ref: '#/components/requestBody/imageUrl'
$ref: '#/components/schemas/imageUrl'
responses:
'200':
description: addAuthorImageById OK
@ -294,20 +219,19 @@ paths:
tags:
- Authors
requestBody:
required: true
description: The author image to update.
content:
application/json:
schema:
properties:
width:
$ref: '#/components/requestBody/imageWidth'
$ref: '#/components/schemas/imageWidth'
height:
$ref: '#/components/requestBody/imageHeight'
$ref: '#/components/schemas/imageHeight'
format:
$ref: '#/components/requestBody/imageFormat'
$ref: '#/components/schemas/imageFormat'
raw:
$ref: '#/components/requestBody/imageRaw'
$ref: '#/components/schemas/imageRaw'
responses:
'200':
description: updateAuthorImageById OK
@ -350,10 +274,8 @@ paths:
application/json:
schema:
oneOf:
asin:
$ref: '#/components/requestBody/asin'
q:
$ref: '#/components/requestBody/authorSearchName'
- $ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin'
- $ref: '#/components/schemas/authorSearchName'
responses:
'200':
description: matchAuthorById OK

View file

@ -17,101 +17,47 @@ components:
type: boolean
description: Whether collapse series was set in the request.
example: true
libraryInclude:
type: string
description: The fields from the response.
example: 'rssfeed'
requestBody:
libraryName:
name: name
in: requestBody
description: The name of the library.
content:
application/json:
schema:
type: string
example: My Audiobooks
libraryFolders:
name: folders
in: requestBody
summary: The folders of the library.
description: The folders of the library. Only specify the fullPath.
content:
application/json:
schema:
type: array
items:
$ref: '../objects/Folder.yaml#/components/schemas/folder'
type: array
items:
$ref: '../objects/Folder.yaml#/components/schemas/folder'
libraryDisplayOrder:
name: displayOrder
in: requestBody
description: The display order of the library. Must be >= 1.
schema:
type: integer
minimum: 1
example: 1
type: integer
minimum: 1
example: 1
libraryIcon:
name: icon
in: requestBody
summary: The icon of library.
description: The icon of the library. See Library Icons for a list of possible icons.
schema:
type: string
example: 'audiobookshelf'
type: string
example: 'audiobookshelf'
libraryMediaType:
name: mediaType
in: requestBody
summary: The type of media the library contains.
description: The type of media that the library contains. Must be `book` or `podcast`.
schema:
type: string
example: 'book'
type: string
example: 'book'
libraryProvider:
name: provider
in: requestBody
summary: Preferred metadata provider for the library.
description: Preferred metadata provider for the library. See Metadata Providers for a list of possible providers.
schema:
type: string
example: 'audible'
type: string
example: 'audible'
librarySettings:
name: settings
in: requestBody
summary: The settings for the library.
description: The settings for the library.
schema:
$ref: '../objects/Library.yaml#/components/schemas/librarySettings'
$ref: '../objects/Library.yaml#/components/schemas/librarySettings'
librarySort:
name: sort
in: requestBody
summary: The sort order of the library.
description: The sort order of the library. For example, to sort by title use 'sort=media.metadata.title'.
schema:
type: string
example: 'media.metadata.title'
type: string
example: 'media.metadata.title'
libraryFilter:
name: filter
in: requestBody
summary: The filter for the library. TODO
description: The filter for the library.
schema:
type: string
example: 'media.metadata.title'
type: string
example: 'media.metadata.title'
libraryCollapseSeries:
name: collapseSeries
in: requestBody
description: Whether to collapse series.
schema:
type: boolean
example: true
default: false
type: boolean
example: true
default: false
libraryInclude:
name: include
in: requestBody
description: The fields to include in the response. The only current option is `rssfeed`.
schema:
type: string
example: 'rssfeed'
type: string
example: 'rssfeed'
responses:
library200:
description: Library found.
@ -147,31 +93,30 @@ paths:
operationId: createLibrary
summary: Create a new library on server
description: Create a new library on server.
required: [name, folders]
tags:
- Libraries
requestBody:
required: true
description: The library object to create.
content:
application/json:
schema:
type: object
required: [name, folders]
properties:
name:
$ref: '#/components/requestBody/libraryName'
$ref: '../objects/Library.yaml#/components/schemas/libraryName'
folders:
$ref: '#/components/requestBody/libraryFolders'
$ref: '#/components/schemas/libraryFolders'
displayOrder:
$ref: '#/components/requestBody/libraryDisplayOrder'
$ref: '#/components/schemas/libraryDisplayOrder'
icon:
$ref: '#/components/requestBody/libraryIcon'
$ref: '#/components/schemas/libraryIcon'
mediaType:
$ref: '#/components/requestBody/libraryMediaType'
$ref: '#/components/schemas/libraryMediaType'
provider:
$ref: '#/components/requestBody/libraryProvider'
$ref: '#/components/schemas/libraryProvider'
settings:
$ref: '#/components/requestBody/librarySettings'
$ref: '#/components/schemas/librarySettings'
responses:
'200':
$ref: '#/components/responses/library200'
@ -211,19 +156,19 @@ paths:
type: object
properties:
name:
$ref: '#/components/requestBody/libraryName'
$ref: '../objects/Library.yaml#/components/schemas/libraryName'
folders:
$ref: '#/components/requestBody/libraryFolders'
$ref: '#/components/schemas/libraryFolders'
displayOrder:
$ref: '#/components/requestBody/libraryDisplayOrder'
$ref: '#/components/schemas/libraryDisplayOrder'
icon:
$ref: '#/components/requestBody/libraryIcon'
$ref: '#/components/schemas/libraryIcon'
mediaType:
$ref: '#/components/requestBody/libraryMediaType'
$ref: '#/components/schemas/libraryMediaType'
provider:
$ref: '#/components/requestBody/libraryProvider'
$ref: '#/components/schemas/libraryProvider'
settings:
$ref: '#/components/requestBody/librarySettings'
$ref: '#/components/schemas/librarySettings'
responses:
'200':
$ref: '#/components/responses/library200'
@ -263,21 +208,21 @@ paths:
type: object
properties:
limit:
$ref: '../schemas.yaml#/components/requestBody/limit'
$ref: '../schemas.yaml#/components/schemas/limit'
page:
$ref: '../schemas.yaml#/components/requestBody/page'
$ref: '../schemas.yaml#/components/schemas/page'
sort:
$ref: '#/components/requestBody/librarySort'
$ref: '#/components/schemas/librarySort'
desc:
$ref: '../schemas.yaml#/components/requestBody/sortDesc'
$ref: '../schemas.yaml#/components/schemas/sortDesc'
filter:
$ref: '#/components/requestBody/libraryFilter'
$ref: '#/components/schemas/libraryFilter'
minified:
$ref: '../schemas.yaml#/components/requestBody/minified'
$ref: '../schemas.yaml#/components/schemas/minified'
collapseSeries:
$ref: '#/components/requestBody/libraryCollapseSeries'
$ref: '#/components/schemas/libraryCollapseSeries'
include:
$ref: '#/components/requestBody/libraryInclude'
$ref: '#/components/schemas/libraryInclude'
responses:
'200':
description: getLibraryItems OK

View file

@ -36,10 +36,8 @@ components:
example: false
autoScanCronExpression:
description: The cron expression for when to automatically scan the library folders. If null, automatic scanning will be disabled.
oneOf:
- type: string
- type: boolean
- type: null
type: string
nullable: true
example: '0 0 0 * * *'
audiobooksOnly:
description: Whether the library should ignore ebook files and only allow ebook files to be supplementary.

View file

@ -7,15 +7,23 @@ components:
example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
authorAsin:
description: The Audible identifier (ASIN) of the author. Will be null if unknown. Not the Amazon identifier.
oneOf:
- type: string
- type: null
type: string
nullable: true
example: B000APZOQA
authorName:
description: The name of the author.
type: string
example: Terry Goodkind
authorDescription:
description: The new description of the author.
type: string
nullable: true
example: Terry Goodkind is a #1 New York Times Bestselling Author and creator of the critically acclaimed masterwork, The Sword of Truth. He has written 30+ major, bestselling novels, has been published in more than 20 languages world-wide, and has sold more than 26 Million books. The Sword of Truth is a revered literary tour de force, comprised of 17 volumes, borne from over 25 years of dedicated writing.
authorImagePath:
description: The absolute path for the author image. This will be in the `metadata/` directory. Will be null if there is no image.
type: string
nullable: true
example: /metadata/authors/aut_z3leimgybl7uf3y4ab.jpg
authorSeries:
type: object
description: Series and the included library items that an author has written.
@ -28,9 +36,8 @@ components:
description: The items in the series. Each library item's media's metadata will have a `series` attribute, a `Series Sequence`, which is the matching series.
type: array
items:
ref: '../LibraryItem.yaml#/components/schemas/libraryItemMinified'
$ref: '../LibraryItem.yaml#/components/schemas/libraryItemMinified'
author:
summary: An author object which includes a description and image path.
description: An author object which includes a description and image path. The library items and series associated with the author are optionally included.
type: object
properties:
@ -41,26 +48,9 @@ components:
name:
$ref: '#/components/schemas/authorName'
description:
description: A description of the author. Will be null if there is none.
oneOf:
- type: string
- type: null
nullable: true
example: |
Terry Goodkind is a #1 New York Times Bestselling Author and creator of the critically acclaimed masterwork,
The Sword of Truth. He has written 30+ major, bestselling novels, has been published in more than 20
languages world-wide, and has sold more than 26 Million books. The Sword of Truth is a revered literary
tour de force, comprised of 17 volumes, borne from over 25 years of dedicated writing. Terry Goodkind's
brilliant books are character-driven stories, with a focus on the complexity of the human psyche. Goodkind
has an uncanny grasp for crafting compelling stories about people like you and me, trapped in terrifying
situations.
$ref: '#/components/schemas/authorDescription'
imagePath:
description: The absolute path for the author image located in the `metadata/` directory. Will be null if there is no image.
oneOf:
- type: string
- type: null
nullable: true
example: /metadata/authors/aut_bxxbyjiptmgb56yzoz.jpg
$ref: '#/components/schemas/authorImagePath'
addedAt:
$ref: '../../schemas.yaml#/components/schemas/addedAt'
updatedAt:

View file

@ -31,27 +31,12 @@ components:
type: string
format: '[0-9]*'
example: '649644248522215260'
limit:
description: The number of items to return from the request.
type: integer
example: 10
total:
description: The total number of items in the response.
type: integer
example: 100
page:
description: The page number (zero indexed) to return from the request.
type: integer
example: 0
minified:
description: Whether minified was set in the request.
type: boolean
example: true
requestBody:
limit:
name: limit
in: requestBody
summary: The number of items to return.
description: The number of items to return. If 0, no items are returned.
schema:
type: integer
@ -59,8 +44,6 @@ components:
default: 0
page:
name: page
in: requestBody
summary: The page number (zero indexed) to return.
description: The page number (zero indexed) to return. If no limit is specified, then page will have no effect.
schema:
type: integer
@ -68,8 +51,6 @@ components:
default: 0
sortDesc:
name: desc
in: requestBody
summary: Sort in reverse order.
description: Return items in reversed order if true.
schema:
type: boolean
@ -77,8 +58,6 @@ components:
default: false
minified:
name: minified
in: requestBody
summary: Return minified items.
description: Return minified items if true.
schema:
type: boolean