Translate API docs in english

Co-authored-by: Djalim Simaila <DjalimSimaila@users.noreply.github.com>
This commit is contained in:
Thomas Rubini 2023-02-16 11:57:15 +01:00
parent 59735916a1
commit cd4d0b9e47
No known key found for this signature in database
GPG Key ID: C7D287C8C1CAC373

View File

@ -15,9 +15,9 @@ servers:
# Definition des tags ------------------------ # Definition des tags ------------------------
tags: tags:
- name: "pages" - name: "pages"
description: "Chemins liés à une page web" description: "Pages endpoints"
- name: "api" - name: "api"
description: "Chemins liés à l'api interne au serveur" description: "Api endpoints"
# Endpoints # Endpoints
paths: paths:
@ -25,12 +25,12 @@ paths:
get: get:
tags: tags:
- pages - pages
summary: "Page d'accueil du site web" summary: "Main page"
description: "Page d'accueil du site web, elle contient des liens vers les pages de contacts et de mention legales ainsi que le bouton pour lancer le jeu." description: "Home page of the game, it serves as a hub of all other pages : legal mentions, credits and game pages"
operationId: homePage operationId: homePage
responses: responses:
"200": "200":
description: "La page d'accueil est retournée au navigateur web" description: "return the home page of the game"
content: content:
text/html: {} text/html: {}
@ -38,12 +38,12 @@ paths:
get: get:
tags: tags:
- pages - pages
summary: "Page du jeu lors d'une partie solo" summary: "solo game page"
description: "Page de jeu du mode solo, elle contient toute la logique du jeu du moment où le joueur entre son pseudo et le moment ou la partie d'arrete" description: "Sigle player game page, it holds all of the game logic from the player entering their username to the end of the game"
operationId: singlePage operationId: singlePage
responses: responses:
"200": "200":
description: "La page de jeu seul est retournée au navigateur web" description: "returns the game page"
content: content:
text/html: {} text/html: {}
@ -51,12 +51,12 @@ paths:
get: get:
tags: tags:
- pages - pages
summary: "Page du jeu lors d'une partie multijoueurs" summary: "multiplayer game page"
description: "Page de jeu du mode multijoueur, elle contient uniquement la logique du jeu pendant la partie multijoueur." description: "Multi player game page, it holds all of the game logic from the game creator starting the game to its end"
operationId: multiPage operationId: multiPage
responses: responses:
"200": "200":
description: "La page de jeu multijoueur est retournée au navigateur web." description: "returns the game page"
content: content:
text/html: {} text/html: {}
@ -64,38 +64,21 @@ paths:
get: get:
tags: tags:
- pages - pages
summary: "Page de mentions legales" summary: "legal mention page"
description: "Page des mentions legales du site web, comme son nom l'indique elle affiche les mentions legales." description: "The legal mention page, holds the legal mentions such as where is hosted the website and who made it"
operationId: mentionLegales operationId: mentionLegales
responses: responses:
"200": "200":
description: "La page de mentions legales est retournée au navigateur" description: "returns the legal mention page"
content: content:
text/html: {} text/html: {}
#TODO change
/privacy:
get:
tags:
- pages
summary: "Page de contact"
description: "Page de contact du site web, elle affiche les informations de contact pour contacter les mainteneurs du site web."
operationId: contact
responses:
"200":
description: "La page de contact est retournée au navigateur web"
content:
text/html: {}
#TODO
#/licenses
/lobby/{game_id}: /lobby/{game_id}:
get: get:
tags: tags:
- pages - pages
summary: "Page de la room multijoueur" summary: "multiplayer lobby room"
description: "Page representant la salle avant le lancement d'une partie multijoueur, elle affiche tout les joueurs present dans la salle, elle sert aussi a rejoindre la salle pour toute personne possedant le lien." description: "The multiplayer lobby room is shown before a multiplayer game starts, is shows the current member of the game, it is reacheable by the game id shown in the page and in the url"
parameters: parameters:
- in: path - in: path
name: game_id name: game_id
@ -108,11 +91,11 @@ paths:
operationId: invite operationId: invite
responses: responses:
"200": "200":
description: "La page de la salle est retournée au navigateur web." description: "return the lobby page."
content: content:
text/html: {} text/html: {}
"404": "404":
description: "La salle n'existe pas ou n'existe plus." description: "This does not exist or does not exist anymore"
content: content:
text/html: {} text/html: {}
@ -122,11 +105,11 @@ paths:
post: post:
tags: tags:
- api - api
summary: "Demande une nouvelle session de jeu multijoueur au serveur" summary: "Create a game session"
description: "Cette route crée une salle de jeu multijoueur dans le serveur, elle octroie ensuite les droit de creation de la salle a l'utilisateur dont le pseudo est donné en parametre post et lui retourne l'identifiant de la game" description: "This endpoint create a game in the server, the username passed as parametter is set as the game owner"
operationId: create_game operationId: create_game
requestBody: requestBody:
description: "Le pseudo de la personne souhaitant crée une partie" description: "username to set as game owner"
required: true required: true
content: content:
application/json: application/json:
@ -138,7 +121,7 @@ paths:
responses: responses:
"200": "200":
description: "Retourne un object json contenant le code erreur de la requete, l'identifiant de la partie, ainsi que l'identifiant de la partie. Signifiant donc que la partie existe bien du coté du serveur" description: "Returns a object, with the error code, and a game_id."
content: content:
application/json: application/json:
schema: schema:
@ -151,11 +134,11 @@ paths:
post: post:
tags: tags:
- api - api
summary: "Ajoute l'utilisateur dans une partie en cours" summary: "Adds user to an existing game"
description: "Cette route ajoute dans la partie identifié par l'identifiant de jeu l'utilisateur indentifié par son pseudo" description: "This endpoint adds the username passed as parameter to the game identified by its game_id also passed as the parametter"
operationId: join_game operationId: join_game
requestBody: requestBody:
description: "Un objet json contenant l'identifiant de la partie (game_id) ainsi que le pseudo (username) de l'utilisateur souhaitant rejoindre la partie " description: "object with a game_id and a username"
required: true required: true
content: content:
application/json: application/json:
@ -164,7 +147,7 @@ paths:
responses: responses:
"200": "200":
description: "Retourne le code erreur de la requete." description: "returns a object with the error code."
content: content:
application/json: application/json:
schema: schema:
@ -180,18 +163,19 @@ paths:
post: post:
tags: tags:
- api - api
summary: "Informe si le joueur est le createur de la partie ou non" summary: "ask if the user is the game owner"
description : "Cette route sert a determiner si le joueur qui fait la requette est le createur de la partie ou non" description : "This endpoint it used to know if the username stored in the cookie is the owner of the game"
operationId: is_owner operationId: is_owner
parameters: parameters:
- in : cookie - in: cookie
name: is_owner name: session
description: "Booleen attribué par le serveur determinant si le joueur actuel est celui qui a crée la salle" description: Local session, holds data used to authentificate the user and the games they belong.
required: true
schema: schema:
type: boolean type: object
responses: responses:
"200": "200":
description: Retourne le code erreur de la requete ainsi qu'un booleen qui determine le status du joueur description: "returns an object with the error code."
content: content:
application/json: application/json:
schema: schema:
@ -201,31 +185,26 @@ paths:
$ref: "#/components/schemas/error" $ref: "#/components/schemas/error"
owner: owner:
type: boolean type: boolean
description: booleen determinant si le joueur est le createur de la partie description: "boolean determining if the palyer is the owner of the gzame"
/api/v1/startGame: /api/v1/startGame:
post: post:
tags: tags:
- api - api
summary: "Crée les données necessaire au demarage d'une session de jeu" summary: "Start the game"
description: "Cette route crée les données necessaire au bon fonctionnement du jeu, c'est a dire qu'elle choisit les personnages, leurs salles, leurs reactions ainsi que leurs reponses et les stoque dans sa memoire en attendant que les clients les recuperent" description: "Starts the game and generate necessary data"
operationId: startGame operationId: startGame
parameters: parameters:
- in: cookie - in: cookie
name: is_owner name: session
description: Local session, holds data used to authentificate the user and the games they belong.
required: true required: true
description: "Booleen attribué par le serveur determinant si le joueur actuel est celui qui a crée la salle"
schema: schema:
type: boolean type: object
- in: cookie
name: "game_id"
required: true
description: "Identifiant de la partie a lancer"
schema:
type: string
responses: responses:
"200": "200":
description: "Retourne le code erreur de la requete, '0' signifiant que les données ont correctement été generées" description: "returns a object with the error code."
content: content:
application/json: application/json:
schema: schema:
@ -238,19 +217,19 @@ paths:
post: post:
tags: tags:
- api - api
summary: "Recupere les données du jeu" summary: "get game data"
description: "Cette route recupere les données necessaire au bon fonctionnement du jeu, c'est a dire les personnages a afficher, leurs textes, leurs reactions ainsi que leurs reponses" description: "Guess the game from the cookie and returns general game data necessary to the client to work properly"
operationId: getGame operationId: getGame
parameters: parameters:
- in: cookie - in: cookie
name: "game_id" name: session
description: Local session, holds data used to authentificate the user and the games they belong.
required: true required: true
description: "Identifiant de la partie a lancer"
schema: schema:
type: string type: object
responses: responses:
"200": "200":
description: "Retourne le code erreur de la requete, et les données du jeu s'il n'y a pas eu d'erreur" description: "returns a object with the error code."
content: content:
application/json: application/json:
schema: schema:
@ -260,19 +239,19 @@ paths:
post: post:
tags: tags:
- api - api
summary: "retourne les membre de la partie" summary: "Get game members"
description: "Cette route retourne sous la forme d'une liste les nom des membres de la partie." description: "Guess the game from the cookie and returns the members of that game"
operationId: getMembers operationId: getMembers
parameters: parameters:
- in : cookie - in: cookie
name: game_id name: session
description: Local session, holds data used to authentificate the user and the games they belong.
required: true required: true
description: Identifiant de la partie
schema: schema:
type : string type: object
responses: responses:
"200": "200":
description: "liste des pseudos des membres de la partie" description: "List of members in the game"
content: content:
application/json: application/json:
schema: schema:
@ -289,18 +268,19 @@ paths:
post: post:
tags: tags:
- api - api
summary: Informe si le joueur est dans une partie summary: "Check if the player is in a given game"
description: "Cette route sert a determiner si le joueur qui fait la requette est dans la partie" description: "Checks the cookie to see if the client is currently in a given game"
operationId: has_joined operationId: has_joined
parameters: parameters:
- in : cookie - in: cookie
name: game_id name: session
description: "identifiant de la game" description: Local session, holds data used to authentificate the user and the games they belong.
required: true
schema: schema:
type: string type: object
responses: responses:
"200": "200":
description: "Retourne le code d'erreur ainsi qu'un booleen determinant si le joueur est dans la partie" description: "Returns error code and a boolean determining if the player is in the game"
content: content:
application/json: application/json:
schema: schema:
@ -312,21 +292,23 @@ paths:
type: boolean type: boolean
/api/v1/getNpcImage: /api/v1/getNpcImage:
post: post:
tags: tags:
- "api" - "api"
summary: retourne l'image d'un personnage sans reactions summary: Get an image from its ID
description: "Cette route retourne l'image neutre du personnage demmandé identifié par son identifiants" description: >
This endpoint is used to show NPC images in the result page. The image id is provided by the server upon
finishing the game. a static ID is needed because the server delete information related to the game after finishing it
operationId: get_npc_image operationId: get_npc_image
requestBody: requestBody:
description: "identifiant du personnage dont on veut recupere l'image" description: "image_id we want the image of"
required: true required: true
content: content:
application/json: application/json:
schema: schema:
type: object type: object
properties: properties:
npcid: image_id:
type: integer type: integer
responses: responses:
"200": "200":
@ -340,11 +322,18 @@ paths:
post: post:
tags: tags:
- api - api
summary: "Recupere une reaction donnée pour un personage du jeu dans une partie" summary: "Get an image corresponding to the reaction of a NPC in this game"
description: "Cette route retoune l'image correspondant a la reaction que le joueur doit deviner" description: "This endpoint is used during the game to get a random image corresponding to the assigned reaction of a NPC. The image may change every request"
operationId: get_npc_reaction operationId: get_npc_reaction
parameters:
- in: cookie
name: session
description: Local session, holds data used to authentificate the user and the games they belong.
required: true
schema:
type: object
requestBody: requestBody:
description: "identifiant du personnage dont on veut recupere l'image" description: "ID of the NPC we want to get the image of"
required: true required: true
content: content:
application/json: application/json:
@ -368,68 +357,54 @@ components: #----------------------------------
schemas: schemas:
error: error:
type: integer type: integer
description: "error de la requette" description: "request error code"
enum: enum:
- 0 - 0
- 1 - 1
game_id: game_id:
type: string type: string
description: "id de la room multijoueur" description: "ID of the game"
username: username:
type: string type: string
description: "pseudo du joueur" description: "player username"
npc: npc:
type: object type: object
description: "personnage a interroger dans la partie" description: "npc to interogate in the game"
properties: properties:
"QA_0" : "QA_0" :
type: string type: string
description: reponse a la question "oû ce personnage etait ?" description: "'Where?' type answer"
"QA_1" : "QA_1" :
type: string type: string
description: reponse a la question "avec qui ce personnage etait ?" description: "'With who?' type answer"
name: name:
type: string type: string
description: "nom du personnage" description: "npc name"
salle: salle:
type: object type: object
description: "object representant une salle virtuelle pour l'intrigue textuelle du jeu" description: "object representing a single room the the game story"
properties: properties:
name: name:
type: string type: string
description: nom de la salle virtuelle description: virtual room name
npcs: npcs:
type: array type: array
description: array contenant les identifiants des personnage present dans la salle, cet array contient toujours deux identifiants sauf dans le cas du coupable ou il est seul. description: array of the npc_id present in the room, should always be at the number of two, execept for the bulgar who was alone in the room
items: items:
type: string type: string
salle_:
type: object
description: "object representant une salle virtuelle pour l'intrigue textuelle du jeu"
properties:
name:
type: string
description: nom de la salle virtuelle
npcs:
type: array
description: array contenant les identifiants des personnage present dans la salle, cet array contient toujours deux identifiants sauf dans le cas du coupable ou il est seul.
items:
type:
integer
#____________________________# #____________________________#
game: game:
type: object type: object
description: "données du jeu" description: "Main game data, should be queried once"
properties: properties:
npcs: npcs:
type: object type: object
description: "liste des personnages choisis par le serveur de maniere aleatoire, ainsi que leur texte de dialogue" description: "List of the randomly chosen npc, with their answer for each type of questions"
properties: properties:
"npc_id_0": "npc_id_0":
$ref: "#/components/schemas/npc" $ref: "#/components/schemas/npc"
@ -443,27 +418,27 @@ components: #----------------------------------
$ref: "#/components/schemas/npc" $ref: "#/components/schemas/npc"
questions: questions:
type: object type: object
description: "les questions identifiés par leur type, choisis aleatoirement par le serveur" description: "Question identified by their type, randomly chosen by the server"
properties: properties:
"QA_0": "QA_0":
type: string type: string
description: question de type "oû etait le personnage ?" description: "'Where?' type question"
"QA_1": "QA_1":
type: string type: string
description: question de type "avec qui etait le personnage ?" description: "'With who?' type question"
rooms: rooms:
type: object type: object
description: "object contenant les salle virtuelle de la partie indentifiées par leur identifiants" description: "object storing the virtual rooms that holds the npcs"
properties: properties:
"room_id_0": "room_id_0":
$ref: "#/components/schemas/salle" $ref: "#/components/schemas/salle"
"room_id_1": "room_id_1":
$ref: "#/components/schemas/salle" $ref: "#/components/schemas/salle"
"room_id_2": "room_id_2":
$ref: "#/components/schemas/salle_" $ref: "#/components/schemas/salle"
traits: traits:
type : array type : array
description: "liste des traits disponible pour cette session de jeu" description: "List of available traits on in this game session"
items: items:
type: string type: string