(no commit message)
[euphorik.git] / doc / protocole3.txt
index 4cf6255..fdb68df 100644 (file)
@@ -2,16 +2,14 @@ Euphorik - Protocole v3
 -----------------------
 
 A. Introduction
----------------\r
-
+---------------
 Ce document a pour but de décrire la communication client-serveur du site euphorik.\r
 Les messages échangés sont basés sur le format JSON.
 Ce document remplace 'protocole2.txt'.
 \r
 
-B. Principe
------------
-
+B. Principes
+------------
 Enregistrement:\r
  * Permet de créer un compte, un cookie est donné en retour. Ce cookie doit être stocké par le client pour pouvoir s'authentifier par la suite.
 
@@ -22,14 +20,27 @@ Authentification:
 Rafraichissement:
  * Le client envoie une demande au serveur avec l'id du dernier message (via XMLHttpRequest ou un function de JQuery)
  * Le serveur maintient la connexion bloquée si le client est à jour.
- * Dès qu'un nouveau message arrive, le serveur débloque la connexion est envoie le ou les messages manquants.
+ * Dès qu'un nouveau message arrive, le serveur débloque la connexion et envoie le ou les messages manquants.
  
 
 C. Protocole
 ------------
 c : client
 s : server
-Les messages client vers serveur sont envoyé par HTTP-POST
+Les messages client vers serveur sont envoyés par HTTP-POST.
+
+A toutes les requêtes le serveur peut répondre une erreur :
+<error>
+   {
+      "reply" : "error",
+      "error_message" : "blabla"
+   }
+   
+Message ok générique :
+<ok>
+   {
+      "reply" : "ok"
+   }
 
 
 C.1. Login
@@ -57,7 +68,7 @@ ou
 s -> c\r
    {\r
       "reply" : "login",\r
-      "status" : "registration_ok" | "authentification_ok" | "error",\r
+      "status" : "registration_ok" | "authentification_ok",\r
       "cookie" : "LKJDLAKSJBFLKASN",\r
       "id" : 193,\r
       "pseudo" : "Paul",\r
@@ -67,11 +78,10 @@ s -> c
       "main_page" : 1,\r
       "conversations" : [\r
          {\r
-            "racine" : 123,\r
+            "root" : 123,\r
             "page" : 1\r
          }\r
-      ],\r
-      "error_message" : "blabla"\r
+      ]\r
    }
  \r
  
@@ -86,7 +96,6 @@ c -> s
  
 C.3. Profile
 ------------
-Modification du profile, seul "cookie" est obligatoire.
 
 c -> s\r
    {\r
@@ -97,20 +106,19 @@ c -> s
       "pseudo" : "Paul",\r
       "email" : "paul@pierre.com",\r
       "css" : "css/3/euphorik.css",\r
-      "mainPage" : "1",\r
+      "main_page" : 1,\r
       "conversations" : [\r
          {\r
-            "racine" : "4F",\r
+            "root" : 123,\r
             "page" : 1\r
          }\r
-      ],\r
-   }      \r
+      ]\r
+   }\r
       
-s -> c\r
-   {\r
-      "reply" : "ok" | "error",\r
-      "error_message" : "blabla"\r
-   }
+s -> c
+   <ok>
+ou
+   <error>
 
 
 C.4. Wait event
@@ -123,7 +131,14 @@ c -> s
       "action" : "wait_event",\r
       "cookie" : "LKJDLAKSJBFLKASN",\r
       "message_count" : 10,\r
-      "last_message_id" : 163\r
+      "last_message_id" : 163,
+      "main_page" : 1,
+      "conversations" : [
+         {
+            "root" : 123,
+            "page" : 1
+         }
+      ]\r
    }
  
 s -> c\r
@@ -133,21 +148,24 @@ Le format de la date n'est pas formel.
    {\r
       "reply" : "new_messages",\r
       "conversations" : [\r
-         "last_page" : true | false,\r
-         "messages" : [\r
-            "id" : 54,\r
-            "date" : "Hier 17:26:54",\r
-            "system" : true | false,\r
-            "owner" : true | false,\r
-            "answered" : true | false,\r
-            "is_a_reply" : true | false,\r
-            "nick" : "Paul",\r
-            "login" : "paul_22",\r
-            "content" : "Salut",\r
-            "answer_to" : [\r
-               { "id" : 123, "pseudo" : "Pierre", "login" : "pierre_45" }\r
+         {\r
+            "last_page" : true | false,\r
+            "messages" : [\r
+               "id" : 54,\r
+               "date" : "Hier 17:26:54",\r
+               "system" : true | false,\r
+               "owner" : true | false,\r
+               "answered" : true | false,\r
+               "is_a_reply" : true | false,\r
+               "nick" : "Paul",\r
+               "login" : "paul_22",\r
+               "content" : "Salut",\r
+               "answer_to" : [\r
+                  { "id" : 123, "pseudo" : "Pierre", "login" : "pierre_45" }\r
+               ]\r
             ]\r
-         ]\r
+         }\r
+         ...\r
       ]\r
    }
 ou\r
@@ -161,9 +179,26 @@ ou
       "reply" : "error",\r
       "error_message" : "blabla"\r
    }
+\r
+\r
+C.5. Envoie troll\r
+-------------------\r
+\r
+c -> s\r
+   {\r
+      "action" : "put_troll",\r
+      "cookie" : "LKJDLAKSJBFLKASN",\r
+      "content" : "Un bon troll velu !"\r
+   }\r
\r
+s -> c\r
+   {\r
+      "reply" : "ok" | "error",\r
+      "error_message" : "blabla"\r
+   }\r
+   
 
-
-C.5. Envoie message
+C.6. Envoie message
 -------------------
 Le client envoie un message, le message peut répondre à un certain nombre d'autres messages.
 "answer_to" n'est pas obligatoire.\r
@@ -174,6 +209,7 @@ c -> s
       "cookie" : "LKJDLAKSJBFLKASN",\r
       "nick" : "Paul",\r
       "content" : "Bonjour",\r
+      "Troll" : 45,\r
       "answer_to" : [ 345, 532, ... ]\r
    }
  
@@ -184,7 +220,7 @@ s -> c
    }
  \r
  \r
-C.6 Ajout d'une correction d'un messages\r
+C.7. Ajout d'une correction d'un messages\r
 ----------------------------------------\r
 Le client envoie un correctif sous la forme de texte supplémentaire à appondre au dernier messages.\r
 Le message est appondu avec un " +++ " devant, par exemple :\r