MOD avancement dans l'extraction d'une conversation entière
[euphorik.git] / modules / erl / euphorik_protocole.erl
index 50f0b00..c15ada1 100755 (executable)
@@ -113,21 +113,14 @@ profile(
       {nick_format, Nick_format_str},
       {view_times, View_times},
       {view_tooltips, View_tooltips},
-      {main_page, Main_page},
       {conversations, {array, Conversations_json}}
    ]
 ) ->
-   % est-ce que les messages auquel on répond existent ?
-   Conversations = lists:foldr(
-      fun({struct, [{root, Root}, {page, Page}]}, Acc) ->
-         Message_existe = euphorik_bd:message_existe(Root),
-         if  Message_existe ->
-            [{Root, Page} | Acc];
-            true ->
-               Acc
-         end
+   % virage des messages qui n'existent pas
+   Conversations = lists:dropwhile(
+      fun(Message_id) ->
+         not euphorik_bd:message_existe(Message_id)
       end,
-      [],
       Conversations_json
    ),
    %  TODO : pas très beau, mieux vaut construire un #user
@@ -141,7 +134,6 @@ profile(
          list_to_atom(Nick_format_str),
          View_times,
          View_tooltips,
-         Main_page,
          Conversations) of
       ok ->
          json_reponse_ok();
@@ -278,6 +270,7 @@ wait_event_page_chat(User, Racines_conversations, Message_count, Last_message_id
                                           {nick, Mess#minichat.pseudo},
                                           {login, User_mess#user.login},
                                           {content, Mess#minichat.contenu},
+                                          {root, Mess#minichat.racine_id},
                                           {answer_to, {array, lists:map(
                                              fun(Id_mess) ->                   
                                                 {ok, M} = euphorik_bd:message_by_id(Id_mess),
@@ -391,7 +384,7 @@ put_message(
                if Strip_content =:= [] ->
                      erreur("Message vide");
                   true ->
-                     % TODO : non-atomique (update_pseudo+nouveau_message)
+                     % attention : non-atomique (update_pseudo+nouveau_message)
                      euphorik_bd:update_pseudo_user(User#user.id, Nick),
                      case euphorik_bd:nouveau_message(Strip_content, User#user.id, Answer_to) of
                         {erreur, R} -> erreur("Impossible d'ajouter un nouveau message. Raison : " ++ R);
@@ -666,22 +659,7 @@ json_reponse_login_ok(User) ->
          {nick_format, atom_to_list(User#user.nick_format)},
          {view_times, User#user.view_times},
          {view_tooltips, User#user.view_tooltips},
-         {main_page, User#user.page_principale},
-         {conversations, 
-            {array,
-               lists:map(
-                  fun(C) ->
-                     {struct,
-                        [
-                           {root, element(1, C)},
-                           {page, element(2, C)}
-                        ]
-                     }
-                  end,
-                  User#user.conversations
-               )
-            }
-         },
-      {ek_master, User#user.ek_master}
+         {conversations, {array, User#user.conversations } },
+         {ek_master, User#user.ek_master}
       ]
    }.