karaoqueue/docs/swagger.yaml

234 lines
5.5 KiB
YAML

openapi: 3.0.2
info:
title: Karaoqueue API
version: '0.0.1'
servers:
- url: 'http://localhost:3000/api'
description: Local Test sever instance
- url: 'https://karaoke.phillipathome.dynv6.net/api'
description: Production API
paths:
/api/enqueue:
post:
summary: "Enqueue a song"
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
client_id:
type: string
name:
type: string
id:
type: string
responses:
'200':
description: "Song enqueued successfully"
'400':
description: "Bad request, JSON is required"
'423':
description: "Cannot enqueue, conditions not met"
/api/queue:
get:
summary: "Get the queue"
responses:
'200':
description: "Queue retrieved successfully"
content:
application/json:
schema:
type: array
items:
type: object
/api/songs:
get:
summary: "Get the list of songs"
responses:
'200':
description: "List of songs retrieved successfully"
content:
application/json:
schema:
type: array
items:
type: object
/api/songs/update:
get:
summary: "Update the list of songs"
responses:
'200':
description: "Songs updated successfully"
'400':
description: "Bad request"
/api/songs/compl:
get:
summary: "Get song completions"
parameters:
- name: search
in: query
required: false
schema:
type: string
responses:
'200':
description: "Song completions retrieved successfully"
content:
application/json:
schema:
type: array
items:
type: object
'400':
description: "Bad request"
/api/entries/delete/{entry_id}:
get:
summary: "Admin deletes an entry"
parameters:
- name: entry_id
in: path
required: true
schema:
type: string
responses:
'200':
description: "Entry deleted successfully"
'400':
description: "Entry deletion failed"
post:
summary: "User deletes an entry"
parameters:
- name: entry_id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
client_id:
type: string
responses:
'200':
description: "Entry deleted successfully"
'400':
description: "Bad request, JSON is required"
'403':
description: "Forbidden, client_id mismatch"
/api/entries/delete:
post:
summary: "Delete multiple entries"
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
type: string
responses:
'200':
description: "Entries deleted successfully"
'400':
description: "Bad request, JSON is required"
/api/entries/mark_sung/{entry_id}:
get:
summary: "Mark an entry as sung"
parameters:
- name: entry_id
in: path
required: true
schema:
type: string
responses:
'200':
description: "Entry marked as sung successfully"
'400':
description: "Marking entry as sung failed"
/api/entries/mark_transferred/{entry_id}:
get:
summary: "Toggle transferred status of an entry"
parameters:
- name: entry_id
in: path
required: true
schema:
type: string
responses:
'200':
description: "Entry transferred status toggled successfully"
'400':
description: "Toggling transferred status failed"
/api/entries/accept/{value}:
get:
summary: "Set accept entries status"
parameters:
- name: value
in: path
required: true
schema:
type: string
responses:
'200':
description: "Accept entries status set successfully"
'400':
description: "Setting accept entries status failed"
/api/entries/accept:
get:
summary: "Get accept entries status"
responses:
'200':
description: "Accept entries status retrieved successfully"
/api/played/clear:
get:
summary: "Clear played songs"
responses:
'200':
description: "Played songs cleared successfully"
'400':
description: "Clearing played songs failed"
/api/entries/delete_all:
get:
summary: "Delete all entries"
responses:
'200':
description: "All entries deleted successfully"
'400':
description: "Deleting all entries failed"
/api/events/current:
get:
summary: "Get the current event"
responses:
'200':
description: "Current event retrieved successfully"
security:
- BasicAuth: []
components:
securitySchemes:
BasicAuth:
type: http
scheme: basic