replace python django backend with nodejs backend

This commit is contained in:
wea_ondara
2024-05-27 18:59:58 +02:00
parent ebd0748894
commit 8b60d023e8
123 changed files with 15193 additions and 88 deletions

976
swagger.json Normal file
View File

@@ -0,0 +1,976 @@
{
"openapi": "3.0.0",
"components": {
"examples": {},
"headers": {},
"parameters": {},
"requestBodies": {},
"responses": {},
"schemas": {
"UUID": {
"type": "string",
"format": "uuid",
"pattern": "[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}"
},
"UserSessionInfoVmV1": {
"properties": {
"id": {
"$ref": "#/components/schemas/UUID"
}
},
"required": [
"id"
],
"type": "object",
"additionalProperties": false
},
"UserInfoVmV1": {
"properties": {
"id": {
"$ref": "#/components/schemas/UUID"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"createdBy": {
"$ref": "#/components/schemas/UUID"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"updatedBy": {
"$ref": "#/components/schemas/UUID"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"email": {
"type": "string",
"format": "email",
"maxLength": 255
},
"displayName": {
"type": "string",
"maxLength": 255
}
},
"required": [
"id",
"createdAt",
"createdBy",
"updatedAt",
"updatedBy",
"name",
"displayName"
],
"type": "object",
"additionalProperties": false
},
"UpdatePasswordRequestV1": {
"properties": {
"userId": {
"$ref": "#/components/schemas/UUID"
},
"password": {
"type": "string"
}
},
"required": [
"userId",
"password"
],
"type": "object",
"additionalProperties": false
},
"RegisterResponseVmV1": {
"properties": {
"success": {
"type": "boolean"
},
"user": {
"$ref": "#/components/schemas/UserInfoVmV1"
},
"session": {
"$ref": "#/components/schemas/UserSessionInfoVmV1"
},
"message": {
"type": "string"
}
},
"required": [
"success"
],
"type": "object",
"additionalProperties": false
},
"RegisterRequestVmV1": {
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"password": {
"type": "string",
"maxLength": 255
}
},
"required": [
"username",
"password"
],
"type": "object",
"additionalProperties": false
},
"LoginResponseVmV1": {
"properties": {
"success": {
"type": "boolean"
},
"user": {
"$ref": "#/components/schemas/UserInfoVmV1"
},
"session": {
"$ref": "#/components/schemas/UserSessionInfoVmV1"
},
"message": {
"type": "string"
}
},
"required": [
"success"
],
"type": "object",
"additionalProperties": false
},
"LoginRequestVmV1": {
"properties": {
"username": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"password": {
"type": "string",
"maxLength": 255
}
},
"required": [
"username",
"password"
],
"type": "object",
"additionalProperties": false
},
"VerifyResponseVmV1": {
"properties": {
"success": {
"type": "boolean"
},
"user": {
"$ref": "#/components/schemas/UserInfoVmV1"
},
"session": {
"$ref": "#/components/schemas/UserSessionInfoVmV1"
},
"message": {
"type": "string"
}
},
"required": [
"success"
],
"type": "object",
"additionalProperties": false
},
"LogoutResponseVmV1": {
"properties": {
"success": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"success"
],
"type": "object",
"additionalProperties": false
},
"AiConfigurationVmV1": {
"properties": {
"id": {
"$ref": "#/components/schemas/UUID"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"createdBy": {
"$ref": "#/components/schemas/UUID"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"updatedBy": {
"$ref": "#/components/schemas/UUID"
},
"name": {
"type": "string",
"maxLength": 255
},
"modelIdOrPath": {
"type": "string",
"maxLength": 255
},
"discordToken": {
"type": "string",
"maxLength": 255
}
},
"required": [
"id",
"createdAt",
"createdBy",
"updatedAt",
"updatedBy",
"name",
"modelIdOrPath",
"discordToken"
],
"type": "object",
"additionalProperties": false
},
"DiscordStatusVmV1": {
"properties": {
"online": {
"type": "boolean"
},
"reactToChat": {
"type": "boolean"
}
},
"required": [
"online",
"reactToChat"
],
"type": "object",
"additionalProperties": false
},
"ChatMessageVmV1": {
"properties": {
"role": {
"type": "string",
"description": "minLength: 1\nmaxLength: 32"
},
"name": {
"type": "string",
"description": "minLength: 1\nmaxLength: 32"
},
"content": {
"type": "string",
"description": "minLength: 1\nmaxLength: 255"
}
},
"required": [
"role",
"name",
"content"
],
"type": "object",
"additionalProperties": false
},
"AiInstanceVmV1": {
"properties": {
"configuration": {
"$ref": "#/components/schemas/AiConfigurationVmV1"
},
"discord": {
"$ref": "#/components/schemas/DiscordStatusVmV1"
},
"messages": {
"items": {
"$ref": "#/components/schemas/ChatMessageVmV1"
},
"type": "array"
}
},
"required": [
"configuration",
"discord",
"messages"
],
"type": "object",
"additionalProperties": false
}
},
"securitySchemes": {}
},
"info": {
"title": "vampire-api",
"version": "1.0.0",
"contact": {}
},
"paths": {
"/api/v1/usersessions": {
"get": {
"operationId": "List",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/UserSessionInfoVmV1"
},
"type": "array"
}
}
}
}
},
"tags": [
"usersessions"
],
"security": [],
"parameters": []
}
},
"/api/v1/usersessions/{id}": {
"delete": {
"operationId": "Remove",
"responses": {
"204": {
"description": "Deleted"
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Not Found"
}
},
"tags": [
"usersessions"
],
"security": [],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/UUID"
}
}
]
}
},
"/api/v1/users": {
"get": {
"operationId": "List",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/UserInfoVmV1"
},
"type": "array"
}
}
}
}
},
"tags": [
"users"
],
"security": [],
"parameters": []
},
"post": {
"operationId": "Add",
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserInfoVmV1"
}
}
}
},
"403": {
"description": "Forbidden"
},
"409": {
"description": "Conflict"
}
},
"tags": [
"users"
],
"security": [],
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserInfoVmV1"
}
}
}
}
},
"put": {
"operationId": "Update",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserInfoVmV1"
}
}
}
},
"404": {
"description": "Not Found"
},
"409": {
"description": "Conflict"
}
},
"tags": [
"users"
],
"security": [],
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserInfoVmV1"
}
}
}
}
}
},
"/api/v1/users/{id}": {
"get": {
"operationId": "GetById",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserInfoVmV1"
}
}
}
},
"404": {
"description": "Not Found"
}
},
"tags": [
"users"
],
"security": [],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/UUID"
}
}
]
},
"delete": {
"operationId": "Remove",
"responses": {
"204": {
"description": "Deleted"
},
"404": {
"description": "Not Found"
}
},
"tags": [
"users"
],
"security": [],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/UUID"
}
}
]
}
},
"/api/v1/users/password": {
"put": {
"operationId": "UpdatePassword",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserInfoVmV1"
}
}
}
},
"404": {
"description": "Not Found"
}
},
"tags": [
"users"
],
"security": [],
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdatePasswordRequestV1"
}
}
}
}
}
},
"/api/v1/auth/register": {
"post": {
"operationId": "Register",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RegisterResponseVmV1"
}
}
}
},
"403": {
"description": "Forbidden"
},
"409": {
"description": "Conflict"
}
},
"tags": [
"auth"
],
"security": [],
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RegisterRequestVmV1"
}
}
}
}
}
},
"/api/v1/auth/login": {
"post": {
"operationId": "Login",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoginResponseVmV1"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"tags": [
"auth"
],
"security": [],
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoginRequestVmV1"
}
}
}
}
}
},
"/api/v1/auth/verify": {
"post": {
"operationId": "Verify",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyResponseVmV1"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"tags": [
"auth"
],
"security": [],
"parameters": []
}
},
"/api/v1/auth/logout": {
"post": {
"operationId": "Logout",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogoutResponseVmV1"
}
}
}
}
},
"tags": [
"auth"
],
"security": [],
"parameters": []
}
},
"/api/v1/ai/configurations": {
"get": {
"operationId": "List",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/AiConfigurationVmV1"
},
"type": "array"
}
}
}
}
},
"tags": [
"aiConfiguration"
],
"security": [],
"parameters": []
},
"post": {
"operationId": "Add",
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfigurationVmV1"
}
}
}
}
},
"tags": [
"aiConfiguration"
],
"security": [],
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfigurationVmV1"
}
}
}
}
},
"put": {
"operationId": "Update",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfigurationVmV1"
}
}
}
},
"404": {
"description": "Not Found"
}
},
"tags": [
"aiConfiguration"
],
"security": [],
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfigurationVmV1"
}
}
}
}
}
},
"/api/v1/ai/configurations/{id}": {
"get": {
"operationId": "GetById",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AiConfigurationVmV1"
}
}
}
},
"404": {
"description": "Not Found"
}
},
"tags": [
"aiConfiguration"
],
"security": [],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/UUID"
}
}
]
},
"delete": {
"operationId": "Remove",
"responses": {
"204": {
"description": "Deleted"
},
"404": {
"description": "Not Found"
}
},
"tags": [
"aiConfiguration"
],
"security": [],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/UUID"
}
}
]
}
},
"/api/v1/ai/instances": {
"get": {
"operationId": "List",
"responses": {
"200": {
"description": "Ok",
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/AiInstanceVmV1"
},
"type": "array"
}
}
}
}
},
"tags": [
"ai"
],
"security": [],
"parameters": []
}
},
"/api/v1/ai/instances/{id}/chat": {
"post": {
"operationId": "ChatText",
"responses": {
"200": {
"description": "Ok"
},
"404": {
"description": "Not found"
}
},
"tags": [
"ai"
],
"security": [],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/UUID"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChatMessageVmV1"
}
}
}
}
}
},
"/api/v1/ai/instances/{id}/discord/online": {
"post": {
"operationId": "DiscordOnline",
"responses": {
"200": {
"description": "Ok"
},
"404": {
"description": "Not found"
}
},
"tags": [
"ai"
],
"security": [],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/UUID"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
}
},
"/api/v1/ai/instances/{id}/discord/reactToChat": {
"post": {
"operationId": "DiscordReactToChat",
"responses": {
"200": {
"description": "Ok"
},
"404": {
"description": "Not found"
}
},
"tags": [
"ai"
],
"security": [],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"$ref": "#/components/schemas/UUID"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
}
}
},
"servers": [
{
"url": "/"
}
]
}