-
Notifications
You must be signed in to change notification settings - Fork 1
Protocole de communication
interface Message<T> {
event: string;
data: T;
}
interface ResponseStatus {
success: boolean;
status: string;
}Lors de la la connexion, le client doit communiquer au serveur son identité, par le biais de la connexion WebSocket établie. Pour ce faire, il doit envoyer un message du type ci-dessous. Tout autre message sera ignoré tant que cette information ne sera pas donnée.
Une fois connecté, l'utilisateur émet un message ping toute les 30s pour conserver son WebSocket avec le serveur.
| Event | Request parameters | Response | Description |
|---|---|---|---|
| CLIENT-authenticate |
|
|
Identifie l'utilisateur auprès du serveur. En cas de succès, l'uid de l'utilisateur est renvoyé dans le statut de la réponse. |
| CLIENT-ping |
|
Maintient la connexion WebSocket avec le serveur. |
interface User {
uid: string;
email: string;
displayName: string;
photoURL: string;
roles: string[];
description: string;
// isAuthorized: [boolean, boolean];
// timestamp: firebase.firestore.FieldValue;
}isAuthorized et timestamp sont des propriétés de Matbay-Legacy et ne seront plus supportées dans Matbay-Yatga:Kalimba. Le niveau d'autorisation d'un utilisateur sera maintenant déterminé par ses rôles et l'utilisation d'un timestamp pour gérer le nombre d'édition du profil n'est plus nécessaire.
| Event | Request parameters | Response | Subscribe Response | Description |
|---|---|---|---|---|
| USER-get |
|
|
Récupère les données de tous les utilisteurs dont les uids sont spécifiés | |
| USER-get-all |
|
Récupère les données de tous les utilisateurs | ||
| USER-edit |
|
Modifie les données de l'utilisateur spécifié. | ||
| USER-create |
|
Crée un nouvel utilisateur à partir des données passées. | ||
| USER-unsubscribe |
|
Stoppe les mises à jours pour les utilisateurs dont les uids sont spécifiés. |
interface Constitution {
id: string;
season: number;
part: number;
name: string;
isPublic: boolean;
anonymousLevel: number; // enum AnonymousLevel (0: rien | 1: le nom des utilisateurs | 2: tout sauf le son)
type: number; // enum ConstitutionType
state: number;
playlistLink: string;
users: string[]; // user[0] est le président
maxUserCount: number;
numberOfSongsPerUser: number;
}Les votes et les chansons seront disponible à partir de collection à part (respectivement votes et songs), se situant sur le même chemin que la constitution sur Firebase. Contrairement à Matbay-Legacy, on ne stocke plus le gagnant et la chanson gagnante.
| Event | Request parameters | Response | Subscribe Response | Description |
|---|---|---|---|---|
| CST-get |
|
|
Récupère les données de tous les constitutions dont les ids sont spécifiés | |
| CST-get-from-user |
|
Récupère toutes les constitutions auxquelles l'utilisateur utilisateur a accès | ||
| CST-create |
|
|
Crée une nouvelle constitution à partir des données passées. | |
| CST-join |
|
Ajoute l'utilisateur à la liste des utilisateurs de la constitution | ||
| CST-state |
|
|
Modifie l'état de la constitution. Seul le président peut apporter une modification | |
| CST-NameURL |
|
|
Modifie le nom et/ou l'URL de la playlist de la constitution. Seul le président peut apporter une modification | |
| CST-unsubscribe |
|
Stoppe les mises à jours pour les constitutions dont les ids sont spécifiés. |
Les chansons sont stockés dans une sous-collection d'une constitution.
interface Song {
id: number
title: string; // shortTitle sur Matbay-Legacy
platform: number; // enum SongPlatform
url: string;
user: string; // patron sur Matbay-Legacy
author: string;
}| Event | Request parameters | Response | Subscribe Response | Description |
|---|---|---|---|---|
| CST-SONG-add |
|
|
Ajoute une chanson dans une constitution. Une réponse donnera si la requête est un succès ou non. | |
| CST-SONG-remove |
|
|
Supprime une chanson dans une constitution. L'utilisateur peut seulement supprimer ses propres chansons. Une réponse donnera si la requête est un succès ou non. | |
| CST-SONG-get-all |
|
|
Abonne l'utilisateur aux chansons d'une constitution. Il doit être membre de la constitution. | |
| CST-SONG-unsubscribe |
|
Supprime les mises à jours des chansons de la constitution demandée. |
| Event | Request parameters | Response | Subscribe Response | Description |
|---|---|---|---|---|
| MOD-kick |
|
|
Supprime toutes les informations d'un utilisateur dans une constitution | |
| MOD-neutralize |
|
|
Ajoute/Modifie tous les votes d'un utilisateur à 5 | |
| MOD-clone |
|
|
Clone une constitution en entier |