definitions: backend.VersionData: properties: changelog: example: - '["Initial release"' - '"Bug fixes"]' items: type: string type: array version: example: 1.0.0 type: string type: object server.TokenRequest: properties: client_type: description: 'Optional: "web", "mobile", "api"' type: string type: object server.TokenResponse: properties: client_type: type: string expires_at: type: string token: type: string type: object info: contact: {} paths: /api/v1/token: delete: consumes: - application/json description: Deletes the current session token parameters: - description: Bearer token in: header name: Authorization required: true type: string produces: - application/json responses: "200": description: OK schema: additionalProperties: type: string type: object "401": description: Unauthorized schema: additionalProperties: type: string type: object "500": description: Internal Server Error schema: additionalProperties: type: string type: object summary: Invalidate session token tags: - auth post: consumes: - application/json description: Returns a new session token for API access parameters: - description: Client type in: body name: request required: true schema: $ref: '#/definitions/server.TokenRequest' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/server.TokenResponse' "400": description: Bad Request schema: additionalProperties: type: string type: object "500": description: Internal Server Error schema: additionalProperties: type: string type: object summary: Create session token tags: - auth /api/v1/token/cleanup: post: consumes: - application/json description: Removes all expired session tokens from the database parameters: - description: Bearer token in: header name: Authorization required: true type: string produces: - application/json responses: "200": description: OK schema: additionalProperties: true type: object "401": description: Unauthorized schema: additionalProperties: type: string type: object "500": description: Internal Server Error schema: additionalProperties: type: string type: object summary: Cleanup expired sessions tags: - auth /character: get: consumes: - application/json description: Returns the image for a specific character parameters: - description: Character name in: query name: name required: true type: string produces: - image/png responses: "200": description: OK schema: type: file summary: Get character image tags: - characters /characters: get: consumes: - application/json description: Returns a list of all available characters produces: - application/json responses: "200": description: OK schema: items: type: string type: array summary: Get list of characters tags: - characters /download: get: consumes: - application/json description: Checks for the latest version of the application produces: - application/json responses: "200": description: OK schema: type: string summary: Check for latest version tags: - download /download/linux: get: description: Redirects to download the latest Linux version produces: - application/octet-stream responses: "302": description: Found schema: type: string summary: Download latest Linux version tags: - download /download/list: get: consumes: - application/json description: Lists all assets available for the latest version produces: - application/json responses: "200": description: OK schema: items: type: string type: array summary: List assets of latest version tags: - download /download/windows: get: description: Redirects to download the latest Windows version produces: - application/octet-stream responses: "302": description: Found schema: type: string summary: Download latest Windows version tags: - download /health: get: consumes: - application/json description: Returns the health status of the server produces: - application/json responses: "200": description: OK schema: type: string summary: Check server health tags: - health /music: get: consumes: - application/json description: Returns a specific song by name parameters: - description: Song name in: query name: song required: true type: string produces: - audio/mpeg responses: "200": description: OK schema: type: file "400": description: song can't be empty schema: type: string "404": description: Not Found schema: type: string "423": description: Syncing is in progress schema: type: string summary: Get a specific song tags: - music /music/addPlayed: get: consumes: - application/json description: Adds the latest song to the played list responses: "204": description: "" "423": description: Syncing is in progress schema: type: string summary: Add latest to played tags: - music /music/addQue: get: consumes: - application/json description: Adds the latest song to the queue responses: "204": description: "" "423": description: Syncing is in progress schema: type: string summary: Add latest to queue tags: - music /music/all/order: get: consumes: - application/json description: Returns a list of all games in order produces: - application/json responses: "200": description: OK schema: items: additionalProperties: true type: object type: array "423": description: Syncing is in progress schema: type: string summary: Get all games tags: - music /music/all/random: get: consumes: - application/json description: Returns a list of all games in random order produces: - application/json responses: "200": description: OK schema: items: additionalProperties: true type: object type: array "423": description: Syncing is in progress schema: type: string summary: Get all games random tags: - music /music/info: get: consumes: - application/json description: Returns information about the current song produces: - application/json responses: "200": description: OK schema: additionalProperties: true type: object summary: Get current song info tags: - music /music/list: get: consumes: - application/json description: Returns a list of played songs produces: - application/json responses: "200": description: OK schema: items: additionalProperties: true type: object type: array summary: Get played songs list tags: - music /music/next: get: description: Returns the next song in the queue produces: - audio/mpeg responses: "200": description: OK schema: type: file "404": description: Not Found schema: type: string "423": description: Syncing is in progress schema: type: string summary: Get next song tags: - music /music/played: put: consumes: - application/json description: Marks a song as played by its ID parameters: - description: Song ID in: query name: song required: true type: integer produces: - application/json responses: "204": description: "" "400": description: Bad Request schema: type: string "423": description: Syncing is in progress schema: type: string summary: Mark song as played tags: - music /music/previous: get: description: Returns the previous song in the queue produces: - audio/mpeg responses: "200": description: OK schema: type: file "404": description: Not Found schema: type: string "423": description: Syncing is in progress schema: type: string summary: Get previous song tags: - music /music/rand: get: description: Returns a random song produces: - audio/mpeg responses: "200": description: OK schema: type: file "404": description: Not Found schema: type: string "423": description: Syncing is in progress schema: type: string summary: Get random song tags: - music /music/rand/classic: get: description: Returns a random song from the classic selection produces: - audio/mpeg responses: "200": description: OK schema: type: file "404": description: Not Found schema: type: string "423": description: Syncing is in progress schema: type: string summary: Get random classic song tags: - music /music/rand/low: get: description: Returns a random song with low chance selection produces: - audio/mpeg responses: "200": description: OK schema: type: file "404": description: Not Found schema: type: string "423": description: Syncing is in progress schema: type: string summary: Get random song with low chance tags: - music /music/reset: get: consumes: - application/json description: Resets the music state responses: "204": description: "" "423": description: Syncing is in progress schema: type: string summary: Reset music state tags: - music /music/soundTest: get: description: Returns the sound check song produces: - audio/mpeg responses: "200": description: OK schema: type: file "404": description: Not Found schema: type: string "423": description: Syncing is in progress schema: type: string summary: Get sound check song tags: - music /sync: get: consumes: - application/json description: Starts syncing games with only new changes produces: - application/json responses: "200": description: Start syncing games schema: type: string "423": description: Syncing is in progress schema: type: string summary: Sync games with only changes tags: - sync /sync/full: get: consumes: - application/json description: Starts a full sync of all games produces: - application/json responses: "200": description: Start syncing games full schema: type: string "423": description: Syncing is in progress schema: type: string summary: Sync all games fully tags: - sync /sync/progress: get: consumes: - application/json description: Returns the current sync progress or result produces: - application/json responses: "200": description: OK schema: additionalProperties: true type: object summary: Get sync progress tags: - sync /sync/reset: get: consumes: - application/json description: Resets the games database by deleting all games and songs produces: - application/json responses: "200": description: Games and songs are deleted from the database schema: type: string "423": description: Syncing is in progress schema: type: string summary: Reset games database tags: - sync /version: get: consumes: - application/json description: get latest version info produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/backend.VersionData' "404": description: Not Found schema: type: string summary: Getting the latest version of the backend tags: - version /version/history: get: consumes: - application/json description: get version history produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/backend.VersionData' type: array "404": description: Not Found schema: type: string summary: Getting the version history of the backend tags: - version swagger: "2.0"