feat(tournament): better frontend and database handling

This commit is contained in:
Maieul BOYER 2026-01-12 16:36:51 +01:00 committed by Maix0
parent ca618d64ca
commit 43e3b9af26
41 changed files with 2484 additions and 278 deletions

View file

@ -2144,9 +2144,9 @@
]
}
},
"/createPausedGame": {
"/api/pong/createPausedGame": {
"post": {
"operationId": "pongCreatePauseGame",
"operationId": "createPauseGame",
"requestBody": {
"content": {
"application/json": {
@ -2451,28 +2451,20 @@
]
}
},
"/startPausedGame": {
"post": {
"operationId": "pongstartPauseGame",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"gameId"
],
"properties": {
"gameId": {
"type": "string",
"description": "'id' | <gameid>"
}
}
}
}
},
"required": true
},
"/api/pong/tournament/{id}": {
"get": {
"operationId": "TournamentData",
"parameters": [
{
"schema": {
"type": "string"
},
"in": "path",
"name": "id",
"required": true,
"description": "the tournament id"
}
],
"responses": {
"200": {
"description": "Default Response",
@ -2493,18 +2485,188 @@
},
"msg": {
"enum": [
"startPausedGame.success"
"tournamentData.success"
]
},
"payload": {
"type": "object",
"properties": {}
"required": [
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"owner",
"users",
"games",
"time"
],
"properties": {
"owner": {
"type": "string",
"description": "ownerId"
},
"users": {
"type": "array",
"items": {
"type": "object",
"required": [
"score",
"id",
"nickname"
],
"properties": {
"score": {
"type": "integer"
},
"id": {
"type": "string"
},
"nickname": {
"type": "string"
}
}
}
},
"games": {
"type": "array",
"items": {
"type": "object",
"required": [
"gameId",
"left",
"right",
"local",
"date",
"outcome"
],
"properties": {
"gameId": {
"type": "string",
"description": "gameId"
},
"left": {
"type": "object",
"required": [
"score",
"id",
"name"
],
"properties": {
"score": {
"type": "integer"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"right": {
"type": "object",
"required": [
"score",
"id",
"name"
],
"properties": {
"score": {
"type": "integer"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"local": {
"type": "boolean"
},
"date": {
"type": "string"
},
"outcome": {
"enum": [
"winL",
"winR",
"other"
]
}
}
}
},
"time": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"401": {
"description": "Default Response",
"content": {
"application/json": {
"schema": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"msg"
],
"properties": {
"kind": {
"enum": [
"notLoggedIn"
]
},
"msg": {
"enum": [
"auth.noCookie",
"auth.invalidKind",
"auth.noUser",
"auth.invalid"
]
}
}
},
{
"type": "object",
"required": [
"kind",
"msg"
],
"properties": {
"kind": {
"enum": [
"notLoggedIn"
]
},
"msg": {
"enum": [
"auth.noCookie",
"auth.invalidKind",
"auth.noUser",
"auth.invalid"
]
}
}
}
]
}
}
}
},
"404": {
"description": "Default Response",
"content": {
@ -2523,7 +2685,157 @@
},
"msg": {
"enum": [
"startPausedGame.no_such_game"
"tournamentData.failure.notFound"
]
}
}
}
}
}
}
},
"tags": [
"openapi_other"
]
}
},
"/api/pong/tournament/": {
"get": {
"operationId": "TournamentList",
"responses": {
"200": {
"description": "Default Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"kind",
"msg",
"payload"
],
"properties": {
"kind": {
"enum": [
"success"
]
},
"msg": {
"enum": [
"tournamentList.success"
]
},
"payload": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"owner",
"time"
],
"properties": {
"id": {
"type": "string",
"description": "tournamentId"
},
"owner": {
"type": "string",
"description": "ownerId"
},
"time": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
},
"401": {
"description": "Default Response",
"content": {
"application/json": {
"schema": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"msg"
],
"properties": {
"kind": {
"enum": [
"notLoggedIn"
]
},
"msg": {
"enum": [
"auth.noCookie",
"auth.invalidKind",
"auth.noUser",
"auth.invalid"
]
}
}
},
{
"type": "object",
"required": [
"kind",
"msg"
],
"properties": {
"kind": {
"enum": [
"notLoggedIn"
]
},
"msg": {
"enum": [
"auth.noCookie",
"auth.invalidKind",
"auth.noUser",
"auth.invalid"
]
}
}
}
]
}
}
}
},
"404": {
"description": "Default Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"kind",
"msg"
],
"properties": {
"kind": {
"enum": [
"failure"
]
},
"msg": {
"enum": [
"tournamentList.failure.generic"
]
}
}