Premier commit
[euphorik.git] / modules / erl / euphorik_requests.erl
1 % coding: utf-8
2 % Ce module est fait pour répondre à des requêtes 'AJAX'.
3 % Auteur : G.Burri
4 % Date : 22.10.2007
5
6 -module(euphorik_requests).
7 -export([
8 tester/0,
9 out/1
10 ]).
11
12 -include_lib("xmerl/include/xmerl.hrl").
13 -include_lib("yaws/include/yaws_api.hrl").
14
15 % Test du module
16 tester() ->
17 %~ {XML, _} = xmerl_scan:string(
18 %~ "<action name=\"loginCaptcha\">"
19 %~ " <captchaCrypt>b1b1b4e72e6f3d00e477cf37cced5851</captchaCrypt>"
20 %~ " <captchaInput>LKJDLA</captchaInput>"
21 %~ "</action>"),
22 %~ io:format("Nouvel user : ~p~n", [nouveau_user(XML)]).
23
24 {XML2, _} = xmerl_scan:string(
25 "<action name=\"login\">"
26 " <cookie>5DZQ2HCRO7JIX3QCSWRNL</cookie>"
27 "</action>"),
28 io:format("Login : ~p~n", [euphorik_protocole:login(XML2)]).
29
30 %~ {XML, _} = xmerl_scan:string(
31 %~ "<action name=\"refreshMessages\">"
32 %~ "<nombreMessage>5</nombreMessage>"
33 %~ "<page>1</page>"
34 %~ "</action>"),
35 %~ io:format("Messages de la premières page : ~p~n", [euphorik_protocole:refreshMessage(XML)]).
36
37 %~ traiter_xml("<action name=\"message\">"
38 %~ "<cookie>4UDUSY6Z2IZNTQO484S8X</cookie>"
39 %~ "<pseudo>Pifou</pseudo>"
40 %~ "<contenu>test &amp; plop</contenu>"
41 %~ "</action>").
42 %~ traiter_xml(
43 %~ "<action name=\"generationCaptcha\">"
44 %~ "</action>").
45
46 % il faut catcher toutes les exceptions possibles
47 out(A) ->
48 %inet:setopts(A#arg.clisock, inet:getopts(A#arg.clisock, [active])),
49 {value, {_, Contenu}} = lists:keysearch("action", 1, yaws_api:parse_post(A)),
50 Ret = traiter_xml(Contenu),
51 {content, "text/xml", Ret}.
52
53
54 traiter_xml(Contenu) ->
55 {XML, _} = xmerl_scan:string(Contenu),
56 traiter_action(XML#xmlElement.attributes, XML).
57
58
59 % un client demande la génération d'un captcha
60 traiter_action([#xmlAttribute{value="generationCaptcha"}], XML) ->
61 euphorik_protocole:generation_captcha(XML);
62 % un client se log pour la première fois
63 traiter_action([#xmlAttribute{value="loginCaptcha"}], XML) ->
64 euphorik_protocole:nouveau_user_captcha(XML);
65 % un client s'enregistre (pseudo + password)
66 traiter_action([#xmlAttribute{value="register"}], XML) ->
67 euphorik_protocole:nouveau_user_login(XML);
68 % authentification d'un client
69 traiter_action([#xmlAttribute{value="login"}], XML) ->
70 euphorik_protocole:login(XML);
71 % modification du profile
72 traiter_action([#xmlAttribute{value="profile"}], XML) ->
73 euphorik_protocole:profile(XML);
74 % le client désire les messages
75 traiter_action([#xmlAttribute{value="refreshMessages"}], XML) ->
76 euphorik_protocole:refreshMessage(XML);
77 % envoie d'un message
78 traiter_action([#xmlAttribute{value="message"}], XML) ->
79 euphorik_protocole:message(XML).
80
81
82