-
Notifications
You must be signed in to change notification settings - Fork 0
Manuel développeur
Les tournois possèdes différents statuts en fonction de leur état. Ces statuts sont représentés par un code :
-
0
: Le tournoi est actuellement fermé. C'est le statut par défaut à la création d'un nouveau tournoi -
1
: Le tournoi est ouvert aux inscriptions des joueurs -
2
: Le tournoi est en cours de jeu. Les inscriptions sont fermés, la feuille de tournoi est affichée en direct et les administrateurs peuvent renseigner les résultats des matchs -
3
: Le tournoi est terminé. Les résultats du tournoi sont figés
-
🔒
: route restreinte d'accès à un utilisateur connecté uniquement. Nécessite de passer en paramètre dans le header le champ suivant :
Authorization: Token {Token_du_compte}
-
⛔
: idem, mais restreinte exclusivement aux comptes administrateurs -
{Tournament_ID}
: remplacer par l'ID du tournoi ciblé par la route -
->
: réponse de la route en cas de succès
-
[POST] ~/api/user/register/
Enregistre un nouveau utilisateur. Nécessite de passer dans le bodyusername
,password1
etpassword2
.
->
204 NO CONTENT -
[POST] ~/api/user/login/
Connecte l'utilisateur. nécessite de passer dans le bodyusername
etpassword
.
->
200 OK + un token dans le body identifiant la session de l'utilisateur. Il est important de conserver ce token -
🔒 [POST] ~/api/user/logout/
Déconnecte l'utilisateur associé au token
->
200 OK + détruit le token -
🔒 [GET] ~/api/user/
Retourne des informations sur l'utilisateur
->
200 OK + retourne les infos sur l'utilisateur. Exemple de réponse :
{
"user_info": {
"username": "bob", //le nom d'utilisateur
"isAdmin": true, //indique si l'utilisateur est un administrateur
"tournaments": [ //tableau contenant les tournois auquel l'utilisateur est inscrit
1,
4
]
}
}
-
[GET] /api/tournaments/{Tournament_ID}/
Retourne les informations d'un tournoi
->
200 OK + retourne dans le body les informations du tournoi. Exemple de réponse :
{
"url": "http://127.0.0.1:8000/api/tournaments/24/", //l'URL du tournoi
"id": 24, //l'ID du tournoi
"name": "Lorem", //le nom du tournoi
"description": "Lorem Ipsum...", //la description du tournoi
"state": 3, //l'état actuel du tournoi
"challonge_image_url": "https://challonge.com/Lorem.svg", //l'URL de l'image live de la feuille du tournoi
"players": [ //tableau contenant les IDs des joueurs inscrits au tournoi
1,
2,
8
]
}
-
[GET] /api/tournaments/
Retourne tous les tournois
->
200 OK + retourne un tableau contenant les infos de tous les tournois -
⛔ [POST] /api/tournaments/
Crée un nouveau tournoi. Voir ci-dessous pour les informations à passer dans le body de la requête
->
201 CREATED + retourne les informations du tournoi créé
{
"name": "lorem", //le nom du tournoi
"description": "lorem ipsum" //la description du tournoi
}
-
⛔ [PUT] /api/tournaments/{Tournament_ID}/
Update un tournoi. Voir ci-dessous pour les informations à passer dans le body de la requête
->
200 OK + retourne les informations du tournoi mis à jour
{
"name": "lorem", //le nouveau nom du tournoi
"description": "lorem ipsum" //la nouvelle description du tournoi
}
-
⛔ [DELETE] /api/tournaments/{Tournament_ID}/
Supprime le tournoi
->
204 NO CONTENT -
⛔ [POST] /api/tournaments/{Tournament_ID}/open_registration/
Change l'état du tournoi de0: fermé
vers1: ouvert aux inscriptions
pour ouvrir les inscriptions
->
204 NO CONTENT -
⛔ [POST] /api/tournaments/{Tournament_ID}/start/
Change l'état du tournoi de1: ouvert aux inscriptions
vers2: en cours
pour démarrer le tournoi et génère la feuille de match
⚠️ nécessite au minimum 2 participants inscrits au tournoi
->
204 NO CONTENT -
⛔ [POST] /api/tournaments/{Tournament_ID}/finish/
Change l'état du tournoi de2: en cours
vers3: terminé
pour conclure le tournoi
⚠️ nécessite que tous les scores des matchs aient été renseignés
->
204 NO CONTENT -
⛔ [POST] /api/tournaments/{Tournament_ID}/matches/
Renvoie la liste de tous les matchs du tournoi. Voir la structure d'un match plus bas
⚠️ nécessite que le tournoi ait été démarré (état2: en cours
)
->
200 OK
{
"id": 364056331, //id du match
"round": 1, //round du match dans le tournoi
"scores_csv": "1-24", //score (vide ("") si pas encore de score)
"state": "complete", //état du match (open, pending, complete)
"player1_id": 229951344, //id du joueur1 (null si pas encore défini, par exemple le match de finale au début du tournoi
"player2_id": 229951345, //id du joueur2 (idem que joueur1)
"winner_id": 229951345, //id du joueur ayant gagné le match (null si pas encore de gagnant)
"player1_name": "test2", //nom du j1
"player2_name": "test3" //nom du j2
}
-
⛔ [POST] /api/tournaments/{Tournament_ID}/scores/
Met à jour le score d'un match. Le gagnant d'un match est défini comme étant le joueur ayant le plus de points. En cas d'égalité, le joueur 1 est le gagnant. Informations à transmettre dans le body ci-dessous
⚠️ nécessite que le tournoi ait été démarré (état2: en cours
)
->
204 NO CONTENT
{
"match_id": "363962268", //id du match (string)
"player1_id": "229895714", //id du j1 (string)
"player2_id": "229895715", //id du j2 (string)
"score_p1": 10, //score du j1 (int, >= 0)
"score_p2": 5 //score du j2 (int, >= 0)
}
-
🔒 [POST] /api/tournaments/{Tournament_ID}/register/
Inscrit l'utilisateur au tournoi
->
204 NO CONTENT -
🔒 [POST] /api/tournaments/{Tournament_ID}/unregister/
Désinscrit l'utilisateur du tournoi
->
204 NO CONTENT