5b3a6d2a01b5438d62e63012cf0f26a0672d7e2f
2 % Ce module est fait pour répondre à des requêtes 'AJAX'.
6 -module(euphorik_requests
).
12 -include_lib("xmerl/include/xmerl.hrl").
13 -include_lib("yaws/include/yaws_api.hrl").
17 %~ {XML, _} = xmerl_scan:string(
18 %~ "<action name=\"loginCaptcha\">"
19 %~ " <captchaCrypt>b1b1b4e72e6f3d00e477cf37cced5851</captchaCrypt>"
20 %~ " <captchaInput>LKJDLA</captchaInput>"
22 %~ io:format("Nouvel user : ~p~n", [nouveau_user(XML)]).
24 %~ {XML2, _} = xmerl_scan:string(
25 %~ "<action name=\"login\">"
26 %~ " <cookie>5DZQ2HCRO7JIX3QCSWRNL</cookie>"
28 %~ io:format("Login : ~p~n", [euphorik_protocole:login(XML2)]).
31 "<action name=\"refreshMessages\">"
32 "<nombreMessage>2</nombreMessage>"
34 "<conversation><racine>3</racine><page>1</page></conversation>"
36 io:format("Messages de la premières page : ~p~n", [traiter_xml(XML
)]).
38 %~ traiter_xml("<action name=\"message\">"
39 %~ "<cookie>4UDUSY6Z2IZNTQO484S8X</cookie>"
40 %~ "<pseudo>Pifou</pseudo>"
41 %~ "<contenu>test & plop</contenu>"
44 %~ "<action name=\"generationCaptcha\">"
48 % il faut catcher toutes les exceptions possibles
50 %inet:setopts(A#arg.clisock, inet:getopts(A#arg.clisock, [active])),
51 {value
, {_
, Contenu
}} = lists:keysearch("action", 1, yaws_api:parse_post(A
)),
52 Ret
= traiter_xml(Contenu
),
53 {content
, "text/xml", Ret
}.
56 traiter_xml(Contenu
) ->
57 {XML
, _
} = xmerl_scan:string(Contenu
),
58 traiter_action(XML#xmlElement
.attributes
, XML
).
61 % un client demande la génération d'un captcha
62 traiter_action([#xmlAttribute
{value
="generationCaptcha"}], XML
) ->
63 euphorik_protocole:generation_captcha(XML
);
64 % un client se log pour la première fois
65 traiter_action([#xmlAttribute
{value
="loginCaptcha"}], XML
) ->
66 euphorik_protocole:nouveau_user_captcha(XML
);
67 % un client s'enregistre (pseudo + password)
68 traiter_action([#xmlAttribute
{value
="register"}], XML
) ->
69 euphorik_protocole:nouveau_user_login(XML
);
70 % authentification d'un client
71 traiter_action([#xmlAttribute
{value
="login"}], XML
) ->
72 euphorik_protocole:login(XML
);
73 % modification du profile
74 traiter_action([#xmlAttribute
{value
="profile"}], XML
) ->
75 euphorik_protocole:profile(XML
);
76 % le client désire les messages
77 traiter_action([#xmlAttribute
{value
="refreshMessages"}], XML
) ->
78 euphorik_protocole:refreshMessage(XML
);
80 traiter_action([#xmlAttribute
{value
="message"}], XML
) ->
81 euphorik_protocole:message(XML
).