% coding: utf-8
% Ce module est fait pour répondre à des requêtes 'AJAX'.
% Auteur : G.Burri
% Date : 22.10.2007
-module(euphorik_requests).
-export([
tester/0,
out/1
]).
-include_lib("xmerl/include/xmerl.hrl").
-include_lib("yaws/include/yaws_api.hrl").
% Test du module
tester() ->
%~ {XML, _} = xmerl_scan:string(
%~ ""
%~ " b1b1b4e72e6f3d00e477cf37cced5851"
%~ " LKJDLA"
%~ ""),
%~ io:format("Nouvel user : ~p~n", [nouveau_user(XML)]).
{XML2, _} = xmerl_scan:string(
""
" 5DZQ2HCRO7JIX3QCSWRNL"
""),
io:format("Login : ~p~n", [euphorik_protocole:login(XML2)]).
%~ {XML, _} = xmerl_scan:string(
%~ ""
%~ "5"
%~ "1"
%~ ""),
%~ io:format("Messages de la premières page : ~p~n", [euphorik_protocole:refreshMessage(XML)]).
%~ traiter_xml(""
%~ "4UDUSY6Z2IZNTQO484S8X"
%~ "Pifou"
%~ "test & plop"
%~ "").
%~ traiter_xml(
%~ ""
%~ "").
% il faut catcher toutes les exceptions possibles
out(A) ->
%inet:setopts(A#arg.clisock, inet:getopts(A#arg.clisock, [active])),
{value, {_, Contenu}} = lists:keysearch("action", 1, yaws_api:parse_post(A)),
Ret = traiter_xml(Contenu),
{content, "text/xml", Ret}.
traiter_xml(Contenu) ->
{XML, _} = xmerl_scan:string(Contenu),
traiter_action(XML#xmlElement.attributes, XML).
% un client demande la génération d'un captcha
traiter_action([#xmlAttribute{value="generationCaptcha"}], XML) ->
euphorik_protocole:generation_captcha(XML);
% un client se log pour la première fois
traiter_action([#xmlAttribute{value="loginCaptcha"}], XML) ->
euphorik_protocole:nouveau_user_captcha(XML);
% un client s'enregistre (pseudo + password)
traiter_action([#xmlAttribute{value="register"}], XML) ->
euphorik_protocole:nouveau_user_login(XML);
% authentification d'un client
traiter_action([#xmlAttribute{value="login"}], XML) ->
euphorik_protocole:login(XML);
% modification du profile
traiter_action([#xmlAttribute{value="profile"}], XML) ->
euphorik_protocole:profile(XML);
% le client désire les messages
traiter_action([#xmlAttribute{value="refreshMessages"}], XML) ->
euphorik_protocole:refreshMessage(XML);
% envoie d'un message
traiter_action([#xmlAttribute{value="message"}], XML) ->
euphorik_protocole:message(XML).