{ "openapi": "3.0.0", "info": { "title": "li'l Judd - OpenAPI 3.0", "description": "None yet", "termsOfService": "https://liljudd.ink/terms-of-service/", "contact": { "url": "https://liljudd.ink/contact/" }, "version": "0.0.0" }, "paths": { "/api/boot/config": { "get": { "tags": ["Guild configs"], "summary": "Find a guild's config by ID", "description": "Returns a single guild's config.", "operationId": "getGuildsFromBoot", "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bootConfig" } } } }, "400": { "description": "Invalid ID supplied" }, "404": { "description": "Guild not found" } }, "security": [ { "api_key": [] } ] } }, "/api/{guildId}/config": { "get": { "tags": ["Guild configs"], "summary": "Find a guild's config by ID", "description": "Returns a single guild's config.", "operationId": "getGuildById", "parameters": [ { "name": "guildId", "in": "path", "description": "ID of guild config to return", "required": true, "schema": { "type": "string", "format": "varchar(20)" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/guildConfig" } } } }, "400": { "description": "Invalid ID supplied" }, "404": { "description": "Guild not found" } }, "security": [ { "api_key": [] } ] }, "delete": { "tags": ["Guild configs"], "summary": "Deletes a guild's config by ID", "description": "Delete a guild's config when the bot is removed from the guild.", "operationId": "deleteGuildById", "parameters": [ { "name": "guildId", "in": "path", "description": "ID of guild config to delete", "required": true, "schema": { "type": "string", "format": "varchar(20)" } } ], "responses": { "204": { "description": "successful operation" }, "400": { "description": "Invalid ID supplied" }, "404": { "description": "Guild not found" } }, "security": [ { "api_key": [] } ] } }, "/api/{guildId}/tp_messages": { "get": { "tags": ["Time planning messages"], "summary": "Find the tp_messages of guild by ID", "description": "Returns tp_messages for a guild", "operationId": "getTp_messagesOfGuildById", "parameters": [ { "name": "guildId", "in": "path", "description": "ID of guild's tp_messages to return", "required": true, "schema": { "type": "string", "format": "varchar(20)" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tp_messages" } } } }, "204": { "description": "Time planning not enabled for this guild" }, "400": { "description": "Invalid ID supplied" }, "404": { "description": "Guild not found" } }, "security": [ { "api_key": [] } ] }, "put": { "tags": ["Time planning messages"], "summary": "Put message IDs for tp_messages of guild by ID", "description": "Returns tp_messages for a guild", "operationId": "putTp_messagesOfGuildById", "parameters": [ { "name": "guildId", "in": "path", "description": "ID of guild's tp_messages to return", "required": true, "schema": { "type": "string", "format": "varchar(20)" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tp_messages" } } } }, "204": { "description": "Time planning not enabled for this guild" }, "400": { "description": "Invalid ID supplied" }, "404": { "description": "Guild not found" } }, "security": [ { "api_key": [] } ] } }, "/api/{guildId}/matches": { "get": { "tags": ["Matches"], "summary": "Find all matches of guild by ID", "description": "Returns tp_messages for a guild", "operationId": "getMatchesOfGuildById", "parameters": [ { "name": "guildId", "in": "path", "description": "ID of guild's tp_messages to return", "required": true, "schema": { "type": "string", "format": "varchar(20)" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/tp_messages" } } } } }, "204": { "description": "Time planning not enabled for this guild" }, "400": { "description": "Invalid ID supplied" }, "404": { "description": "Guild not found" } }, "security": [ { "api_key": [] } ] } }, "/api/{guildId}/matches/{channelId}": { "post": { "tags": ["Matches"], "summary": "Save a new created match in channel of guild by IDs", "description": "Returns tp_messages for a guild", "operationId": "postMatchOfGuildById", "parameters": [ { "name": "guildId", "in": "path", "description": "ID of match's guild to set", "required": true, "schema": { "type": "string", "format": "varchar(20)" } }, { "name": "channelId", "in": "path", "description": "ID of match's channel to set", "required": true, "schema": { "type": "string", "format": "varchar(20)" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tp_messages" } } } }, "204": { "description": "Time planning not enabled for this guild" }, "400": { "description": "Invalid ID supplied" }, "404": { "description": "Guild not found" } }, "security": [ { "api_key": [] } ] } }, "/api/{guildId}/matches/{channelId}/{matchMessageId}": { "put": { "tags": ["Matches"], "summary": "Set state for match of guild by IDs", "description": "Returns tp_messages for a guild", "operationId": "putMatchOfGuildById", "parameters": [ { "name": "guildId", "in": "path", "description": "ID of guild's tp_messages to return", "required": true, "schema": { "type": "string", "format": "varchar(20)" } }, { "name": "channelId", "in": "path", "description": "ID of match's channel to set", "required": true, "schema": { "type": "string", "format": "varchar(20)" } }, { "name": "matchMessageId", "in": "path", "description": "ID of match's message Id to set", "required": true, "schema": { "type": "string", "format": "varchar(20)" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/tp_messages" } } } }, "204": { "description": "Time planning not enabled for this guild" }, "400": { "description": "Invalid ID supplied" }, "404": { "description": "Guild not found" } }, "security": [ { "api_key": [] } ] } } }, "components": { "schemas": { "bootConfig": { "type": "object", "properties": { "guilds": { "type": "array", "items": { "$ref": "#/components/schemas/guildConfig" } }, "accessToken": { "type": "string" } } }, "guildConfig": { "type": "object", "properties": { "guildID": { "type": "string", "format": "varchar(20)", "example": "1234567890123456789" }, "timezone": { "type": "string", "format": "text", "example": "Europe/Berlin" }, "features": { "type": "object", "properties": { "time_planning": { "type": "object", "properties": { "channelID": { "type": "string", "format": "varchar(20)", "example": "1234567890123456789" }, "targetMinute": { "type": "number", "example": 0 }, "targetHour": { "type": "number", "example": 1 }, "targetDay": { "type": "number", "example": 1 }, "roles": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "isAvailableRoleId": { "type": "string", "format": "varchar(20)", "example": "1234567890123456789", "nullable": true }, "wantsToBeNotifieRoledId": { "type": "string", "format": "varchar(20)", "example": "1234567890123456789", "nullable": true } } } } } } }, "matches": { "type": "array", "items": { "$ref": "#/components/schemas/match" } } } }, "match": { "type": "object", "properties": { "channelID": { "type": "string", "format": "varcharq(20)", "example": "1234567890123456789" }, "matchType": { "type": "string", "format": "varchar(50)", "example": "Scrim" }, "createrId": { "type": "string", "format": "varchar(20)", "example": "1234567890123456789" }, "roleId": { "type": "string", "format": "varchar(20)", "example": "1234567890123456789" }, "opponentName": { "type": "string", "format": "varchar(100)", "example": "?" }, "messsageId": { "type": "string", "format": "varchar(20)", "example": "1234567890123456789" }, "utc_ts": { "type": "string", "example": "1706180188" } } }, "tp_messages": { "type": "object", "properties": { "guildId": { "type": "string", "format": "varchar(20)", "example": "1234567890123456789" }, "channelId": { "type": "string", "format": "varchar(20)", "example": "1234567890123456789" }, "messageIds": { "type": "array", "items": { "type": "string", "format": "varchar(20)" }, "example": [ "1234567890123456789", "1234567890123456789", "1234567890123456789", "1234567890123456789", "1234567890123456789", "1234567890123456789", "1234567890123456789" ] } } } }, "securitySchemes": { "api_key": { "type": "apiKey", "name": "api_key", "in": "header" } } } }