mirror of
https://github.com/PhoenixTwoFive/karaoqueue.git
synced 2025-05-20 03:21:47 +02:00
234 lines
5.5 KiB
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
|