325 lines
8.9 KiB
YAML
325 lines
8.9 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
version: "3.1"
|
|
title: "Music Server"
|
|
description: "Fixed some bugs with songs not found made the application crash. Now checking if song exists and if not, remove song from DB and find another one. Frontend is now decoupled from the backend."
|
|
contact:
|
|
email: "zarnor91@gmail.com"
|
|
servers:
|
|
- url: https://music.sanplex.xyz/
|
|
description: Main (production) server
|
|
- url: https://tmusic.sanplex.xyz/
|
|
description: Test server
|
|
tags:
|
|
- name: "Music"
|
|
description: "Endpoints for the music"
|
|
- name: "Version"
|
|
description: "Information about the application"
|
|
- name: "Sync"
|
|
description: "Sync the database with the folders"
|
|
paths:
|
|
/music:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Get song"
|
|
description: "Get a specified song from the que, if invalid number it will be the first or the last song in que"
|
|
operationId: "getSong"
|
|
parameters:
|
|
- name: "song"
|
|
in: "query"
|
|
schema:
|
|
type: integer
|
|
description: "The number the song has in the que"
|
|
required: true
|
|
responses:
|
|
"200":
|
|
description: "The specified file"
|
|
content:
|
|
audio/mpeg:
|
|
schema:
|
|
type: object
|
|
format: binary
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/soundTest:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Start a sound test"
|
|
description: "Get a sound check song"
|
|
operationId: "getSoundCheckSong"
|
|
responses:
|
|
"200":
|
|
description: "A file"
|
|
content:
|
|
audio/mpeg:
|
|
schema:
|
|
type: object
|
|
format: binary
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/rand:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Get random song"
|
|
description: "Takes a random song from a random game"
|
|
operationId: "getRandom"
|
|
responses:
|
|
"200":
|
|
description: "A file"
|
|
content:
|
|
audio/mpeg:
|
|
schema:
|
|
type: object
|
|
format: binary
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/rand/low:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Get random song"
|
|
description: "Takes a random song from a random game but increases the chance for games that haven't been played"
|
|
operationId: "getRandomLow"
|
|
responses:
|
|
"200":
|
|
description: "A file"
|
|
content:
|
|
audio/mpeg:
|
|
schema:
|
|
type: object
|
|
format: binary
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/info:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Get info of current song"
|
|
description: "Return the info of the song currently playing"
|
|
operationId: "getInfo"
|
|
responses:
|
|
"200":
|
|
description: "Info of current song"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/info'
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/list:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Gets song que"
|
|
description: "Gets a list of all songs that have been fetched"
|
|
operationId: "getList"
|
|
responses:
|
|
"200":
|
|
description: "A list"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/list'
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/next:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Get next song"
|
|
description: "Gets next song in the song que, if there is no more a new random song will be generated."
|
|
operationId: "getNext"
|
|
responses:
|
|
"200":
|
|
description: "A file"
|
|
content:
|
|
audio/mpeg:
|
|
schema:
|
|
type: object
|
|
format: binary
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/previous:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Get previous song"
|
|
description: "Gets previous song in the song que, if there is no more the first song will be returns."
|
|
operationId: "getPrevious"
|
|
responses:
|
|
"200":
|
|
description: "A file"
|
|
content:
|
|
audio/mpeg:
|
|
schema:
|
|
type: object
|
|
format: binary
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/all:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Gets all games"
|
|
description: "Gets a list of all games that is in the database"
|
|
operationId: "getAll"
|
|
responses:
|
|
"200":
|
|
description: "A list"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ["God of War", "Final Fantasy VII"]
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/all/random:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Gets all games in random order"
|
|
description: "Gets a list of all games that is in the database in random order"
|
|
operationId: "getAllRandom"
|
|
responses:
|
|
"200":
|
|
description: "A list"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ["Final Fantasy VII", "God of War"]
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/played:
|
|
put:
|
|
tags:
|
|
- "Music"
|
|
summary: "Increase played"
|
|
description: "Increase the number of times the current game has been played"
|
|
operationId: "setPlayed"
|
|
responses:
|
|
"202":
|
|
description: "Accepted"
|
|
"401":
|
|
description: "Bad Request"
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/addQue:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Adds last song to que"
|
|
description: "Adds the last featched song to the song que"
|
|
operationId: "addQue"
|
|
responses:
|
|
"200":
|
|
description: "OK"
|
|
"401":
|
|
description: "Bad Request"
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/music/reset:
|
|
get:
|
|
tags:
|
|
- "Music"
|
|
summary: "Resets the song que"
|
|
description: "Resets the song que for a new match"
|
|
operationId: "reset"
|
|
responses:
|
|
"200":
|
|
description: "successful operation"
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
/version:
|
|
get:
|
|
tags:
|
|
- "Version"
|
|
summary: "Returns pet inventories by status"
|
|
description: "Returns a map of status codes to quantities"
|
|
operationId: "getVersionInfo"
|
|
responses:
|
|
"200":
|
|
description: "successful operation"
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/versionInfo'
|
|
/sync:
|
|
get:
|
|
tags:
|
|
- "Sync"
|
|
summary: "Sync games"
|
|
description: "Sync the database with the folders"
|
|
operationId: "sync"
|
|
responses:
|
|
"200":
|
|
description: "successful operation"
|
|
"500":
|
|
description: "Something went wrong on the server"
|
|
components:
|
|
schemas:
|
|
list:
|
|
type: object
|
|
properties:
|
|
Game:
|
|
type: string
|
|
example: God of War
|
|
Song:
|
|
type: string
|
|
example: Main Theme.mp3
|
|
CurrentlyPlaying:
|
|
type: boolean
|
|
example: true
|
|
description: Only included on the one that's playing
|
|
SongNo:
|
|
type: integer
|
|
example: 3
|
|
info:
|
|
type: object
|
|
properties:
|
|
Game:
|
|
type: string
|
|
example: God of War
|
|
GamePlayed:
|
|
type: integer
|
|
example: 10
|
|
Song:
|
|
type: string
|
|
example: Main Theme.mp3
|
|
SongPlayed:
|
|
type: integer
|
|
example: 10
|
|
SongNo:
|
|
type: integer
|
|
example: 3
|
|
versionInfo:
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: string
|
|
example: 0.5.1
|
|
changelog:
|
|
type: string
|
|
example: "Added shadow to build fat jars. Added support to give property files through arguments."
|
|
history:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/historyInfo'
|
|
historyInfo:
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: string
|
|
example: 0.5.0
|
|
changelog:
|
|
type: string
|
|
example: "Updated kotlin version, gradle version and al libs. Added connection to database with exposed. Added new endpoints." |