Upload files to "/"
This commit is contained in:
parent
1fd2a147c2
commit
873be173f2
2 changed files with 3086 additions and 140 deletions
2999
openapi.json
Normal file
2999
openapi.json
Normal file
File diff suppressed because it is too large
Load diff
227
openapi.yaml
227
openapi.yaml
|
|
@ -7,6 +7,9 @@ info:
|
||||||
All routes are served from the same origin as the web client. Runtime security
|
All routes are served from the same origin as the web client. Runtime security
|
||||||
is handled via bearer tokens (`Authorization: Bearer <token>`) or the
|
is handled via bearer tokens (`Authorization: Bearer <token>`) or the
|
||||||
`auth_token` HTTP-only cookie set by the OpenID Connect login flow.
|
`auth_token` HTTP-only cookie set by the OpenID Connect login flow.
|
||||||
|
license:
|
||||||
|
name: MIT
|
||||||
|
url: https://opensource.org/licenses/MIT
|
||||||
servers:
|
servers:
|
||||||
- url: http://localhost:3000
|
- url: http://localhost:3000
|
||||||
description: Local development server
|
description: Local development server
|
||||||
|
|
@ -1098,34 +1101,6 @@ paths:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/ErrorResponse'
|
$ref: '#/components/schemas/ErrorResponse'
|
||||||
/api/admin/database/table/{tableName}/data:
|
|
||||||
get:
|
|
||||||
tags: [Admin]
|
|
||||||
summary: Read table data
|
|
||||||
operationId: adminGetTableData
|
|
||||||
parameters:
|
|
||||||
- name: tableName
|
|
||||||
in: path
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
responses:
|
|
||||||
'200':
|
|
||||||
description: Rows stored in the table
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
additionalProperties: true
|
|
||||||
'500':
|
|
||||||
description: Unable to fetch data
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/ErrorResponse'
|
|
||||||
/api/admin/database/table/{tableName}:
|
|
||||||
post:
|
post:
|
||||||
tags: [Admin]
|
tags: [Admin]
|
||||||
summary: Insert a new row
|
summary: Insert a new row
|
||||||
|
|
@ -1156,6 +1131,33 @@ paths:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/ErrorResponse'
|
$ref: '#/components/schemas/ErrorResponse'
|
||||||
|
/api/admin/database/table/{tableName}/data:
|
||||||
|
get:
|
||||||
|
tags: [Admin]
|
||||||
|
summary: Read table data
|
||||||
|
operationId: adminGetTableData
|
||||||
|
parameters:
|
||||||
|
- name: tableName
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Rows stored in the table
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
additionalProperties: true
|
||||||
|
'500':
|
||||||
|
description: Unable to fetch data
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/ErrorResponse'
|
||||||
/api/admin/database/table/{tableName}/{id}:
|
/api/admin/database/table/{tableName}/{id}:
|
||||||
put:
|
put:
|
||||||
tags: [Admin]
|
tags: [Admin]
|
||||||
|
|
@ -1248,11 +1250,9 @@ components:
|
||||||
username:
|
username:
|
||||||
type: string
|
type: string
|
||||||
display_name:
|
display_name:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
email:
|
email:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
role:
|
role:
|
||||||
type: string
|
type: string
|
||||||
description: Either `user` or `admin`.
|
description: Either `user` or `admin`.
|
||||||
|
|
@ -1266,9 +1266,8 @@ components:
|
||||||
token:
|
token:
|
||||||
type: string
|
type: string
|
||||||
expires_at:
|
expires_at:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
format: date-time
|
format: date-time
|
||||||
nullable: true
|
|
||||||
MediaItem:
|
MediaItem:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|
@ -1280,18 +1279,15 @@ components:
|
||||||
type: string
|
type: string
|
||||||
enum: [movie, series]
|
enum: [movie, series]
|
||||||
sub_type:
|
sub_type:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
overview:
|
overview:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
genres:
|
genres:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
parental_rating:
|
parental_rating:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
ratings:
|
ratings:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
|
|
@ -1301,14 +1297,11 @@ components:
|
||||||
tmdb_id:
|
tmdb_id:
|
||||||
type: integer
|
type: integer
|
||||||
tvdb_id:
|
tvdb_id:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
imdb_id:
|
imdb_id:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
arr_id:
|
arr_id:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
hidden:
|
hidden:
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
|
|
@ -1331,8 +1324,7 @@ components:
|
||||||
season_number:
|
season_number:
|
||||||
type: integer
|
type: integer
|
||||||
overview:
|
overview:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
metadata:
|
metadata:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
|
|
@ -1363,8 +1355,7 @@ components:
|
||||||
episode_number:
|
episode_number:
|
||||||
type: integer
|
type: integer
|
||||||
overview:
|
overview:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
metadata:
|
metadata:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
|
|
@ -1386,22 +1377,18 @@ components:
|
||||||
media_id:
|
media_id:
|
||||||
type: string
|
type: string
|
||||||
season_id:
|
season_id:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
type:
|
type:
|
||||||
type: string
|
type: string
|
||||||
enum: [episode, movie, season]
|
enum: [episode, movie, season]
|
||||||
name:
|
name:
|
||||||
type: string
|
type: string
|
||||||
season_number:
|
season_number:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
episode_number:
|
episode_number:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
overview:
|
overview:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
metadata:
|
metadata:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
|
|
@ -1418,10 +1405,9 @@ components:
|
||||||
- type: object
|
- type: object
|
||||||
properties:
|
properties:
|
||||||
episodes:
|
episodes:
|
||||||
type: array
|
type: [array, 'null']
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/EpisodeItem'
|
$ref: '#/components/schemas/EpisodeItem'
|
||||||
nullable: true
|
|
||||||
MediaWithLibrary:
|
MediaWithLibrary:
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: '#/components/schemas/MediaItem'
|
- $ref: '#/components/schemas/MediaItem'
|
||||||
|
|
@ -1446,13 +1432,12 @@ components:
|
||||||
type: string
|
type: string
|
||||||
enum: [movie, series]
|
enum: [movie, series]
|
||||||
sub_type:
|
sub_type:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
seasons:
|
seasons:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
type: integer
|
type: integer
|
||||||
nullable: true
|
default: []
|
||||||
status:
|
status:
|
||||||
type: string
|
type: string
|
||||||
requester_id:
|
requester_id:
|
||||||
|
|
@ -1463,17 +1448,13 @@ components:
|
||||||
title:
|
title:
|
||||||
type: string
|
type: string
|
||||||
year:
|
year:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
poster_path:
|
poster_path:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
backdrop_path:
|
backdrop_path:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
overview:
|
overview:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
required:
|
required:
|
||||||
- id
|
- id
|
||||||
- tmdb_id
|
- tmdb_id
|
||||||
|
|
@ -1491,8 +1472,7 @@ components:
|
||||||
type: string
|
type: string
|
||||||
enum: [movie, series]
|
enum: [movie, series]
|
||||||
sub_type:
|
sub_type:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
seasons:
|
seasons:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
|
|
@ -1502,16 +1482,13 @@ components:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
poster_path:
|
poster_path:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
backdrop_path:
|
backdrop_path:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
title:
|
title:
|
||||||
type: string
|
type: string
|
||||||
overview:
|
overview:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
required:
|
required:
|
||||||
- tmdb_id
|
- tmdb_id
|
||||||
- type
|
- type
|
||||||
|
|
@ -1521,39 +1498,29 @@ components:
|
||||||
id:
|
id:
|
||||||
type: integer
|
type: integer
|
||||||
title:
|
title:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
name:
|
name:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
media_type:
|
media_type:
|
||||||
type: string
|
type: string
|
||||||
overview:
|
overview:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
poster_path:
|
poster_path:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
backdrop_path:
|
backdrop_path:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
vote_average:
|
vote_average:
|
||||||
type: number
|
type: [number, 'null']
|
||||||
format: float
|
format: float
|
||||||
nullable: true
|
|
||||||
vote_count:
|
vote_count:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
popularity:
|
popularity:
|
||||||
type: number
|
type: [number, 'null']
|
||||||
format: float
|
format: float
|
||||||
nullable: true
|
|
||||||
release_date:
|
release_date:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
first_air_date:
|
first_air_date:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
genre_ids:
|
genre_ids:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
|
|
@ -1581,8 +1548,7 @@ components:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
credits:
|
credits:
|
||||||
type: object
|
type: [object, 'null']
|
||||||
nullable: true
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
recommendations:
|
recommendations:
|
||||||
type: array
|
type: array
|
||||||
|
|
@ -1595,12 +1561,10 @@ components:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
score:
|
score:
|
||||||
type: object
|
type: [object, 'null']
|
||||||
nullable: true
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
localdata:
|
localdata:
|
||||||
type: object
|
type: [object, 'null']
|
||||||
nullable: true
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
keywords:
|
keywords:
|
||||||
type: array
|
type: array
|
||||||
|
|
@ -1614,8 +1578,7 @@ components:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
credits:
|
credits:
|
||||||
type: object
|
type: [object, 'null']
|
||||||
nullable: true
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
recommendations:
|
recommendations:
|
||||||
type: array
|
type: array
|
||||||
|
|
@ -1628,12 +1591,10 @@ components:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
score:
|
score:
|
||||||
type: object
|
type: [object, 'null']
|
||||||
nullable: true
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
localdata:
|
localdata:
|
||||||
type: object
|
type: [object, 'null']
|
||||||
nullable: true
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
keywords:
|
keywords:
|
||||||
type: array
|
type: array
|
||||||
|
|
@ -1675,13 +1636,11 @@ components:
|
||||||
enabled:
|
enabled:
|
||||||
type: boolean
|
type: boolean
|
||||||
lastRun:
|
lastRun:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
format: date-time
|
format: date-time
|
||||||
nullable: true
|
|
||||||
nextRun:
|
nextRun:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
format: date-time
|
format: date-time
|
||||||
nullable: true
|
|
||||||
running:
|
running:
|
||||||
type: boolean
|
type: boolean
|
||||||
TaskActionRequest:
|
TaskActionRequest:
|
||||||
|
|
@ -1698,11 +1657,9 @@ components:
|
||||||
seriesId:
|
seriesId:
|
||||||
type: integer
|
type: integer
|
||||||
seasonNumber:
|
seasonNumber:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
episodeNumber:
|
episodeNumber:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
type:
|
type:
|
||||||
type: string
|
type: string
|
||||||
enum: [season, episode, series, all]
|
enum: [season, episode, series, all]
|
||||||
|
|
@ -1736,36 +1693,27 @@ components:
|
||||||
type: boolean
|
type: boolean
|
||||||
example: true
|
example: true
|
||||||
message:
|
message:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
result:
|
result:
|
||||||
type: object
|
type: [object, 'null']
|
||||||
nullable: true
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
path:
|
path:
|
||||||
type: string
|
type: [string, 'null']
|
||||||
nullable: true
|
|
||||||
DatabaseStats:
|
DatabaseStats:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
userCount:
|
userCount:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
mediaCount:
|
mediaCount:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
requestCount:
|
requestCount:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
activeRequests:
|
activeRequests:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
completedRequests:
|
completedRequests:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
userTokens:
|
userTokens:
|
||||||
type: integer
|
type: [integer, 'null']
|
||||||
nullable: true
|
|
||||||
TableColumn:
|
TableColumn:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|
@ -1774,10 +1722,9 @@ components:
|
||||||
allowNull:
|
allowNull:
|
||||||
type: boolean
|
type: boolean
|
||||||
defaultValue:
|
defaultValue:
|
||||||
nullable: true
|
type: [string, number, boolean, object, 'null']
|
||||||
primaryKey:
|
primaryKey:
|
||||||
type: boolean
|
type: boolean
|
||||||
autoIncrement:
|
autoIncrement:
|
||||||
type: boolean
|
type: [boolean, 'null']
|
||||||
nullable: true
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue