+traiter_donnees(Contenu) ->
+ % FIXME : ne plus encapsuler le JSON dans de l'xml... apparement yaws veux absolument de l'xml (voir post mi-avril 2008 sur la mailing list)\r
+ Reponse = case xmerl_scan:string(Contenu) of
+ {#xmlElement{name = json, content = [#xmlText{value = J}|_]}, _} ->
+ case json:decode_string(J) of
+ {ok, {struct, [{action, Action}| Reste]}} ->
+ %io:format("~p~n", [euphorik_protocole:login(JSON)]),
+ json:encode(traiter_action(Action, Reste));
+ _ ->
+ error
+ end;
+ _ -> error
+ end,
+ if Reponse =:= error ->
+ euphorik_protocole:erreur("Format XML/JSON incorrect");
+ true ->
+ Reponse
+ end.
+
+
+% authentification d'un client
+traiter_action("authentification", JSON) ->
+ euphorik_protocole:login(JSON));
+% un client s'enregistre (pseudo + password)
+traiter_action("register", JSON) ->
+ euphorik_protocole:register(JSON);
+% modification du profile
+traiter_action("set_profile", JSON) ->
+ euphorik_protocole:profile(JSON);
+% un utilisateur attend un événement (par exemple l'arrivé d'un nouveau message)
+traiter_action("wait_event", JSON) ->
+ euphorik_protocole:wait_event(JSON);
+% un utilisateur envoie un message
+traiter_action("put_message", JSON) ->
+ euphorik_protocole:message(JSON).\r
+