X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_bd.erl;h=cad8183c19969c81f014a8f6ec02b51c698e65e6;hp=dff71dbf1fb68aef172c68509d213ac6b3c83c21;hb=8890d015ccd03d33e77c0efea744da98b6fd2f70;hpb=654e586482addf692991118ab9a4c5ead082457e diff --git a/modules/erl/euphorik_bd.erl b/modules/erl/euphorik_bd.erl index dff71db..cad8183 100755 --- a/modules/erl/euphorik_bd.erl +++ b/modules/erl/euphorik_bd.erl @@ -39,7 +39,7 @@ css_from_user_cookie/1, is_ek_master_from_cookie/1, - % messages :e + % messages : nouveau_message/3, nouveau_message_sys/1, nouveau_message_sys/2, @@ -179,7 +179,7 @@ update_pseudo_user(UserId, Pseudo) -> user_by_cookie(Cookie) -> resultat_transaction(mnesia:transaction( fun() -> - case e(q([E || E <- mnesia:table(user), E#user.cookie =:= Cookie]), [{tmpdir, ?KEY_SORT_TEMP_DIR}]) of + case mnesia:index_read(user, Cookie, #user.cookie) of [User] -> {ok, User}; _ -> erreur end @@ -265,7 +265,7 @@ nouveau_message(Mess, Auteur_id, Repond_A_ids) -> ), Racine_id = case Repond_a of [] -> undefined; - [M | _ ] -> + [M | _] -> Une_racine = M#minichat.racine_id, % vérification que tout les messages de Repond_a possède la même racine (même conversation) case lists:all(fun(R) -> R#minichat.racine_id =:= Une_racine end, Repond_a) of @@ -274,7 +274,7 @@ nouveau_message(Mess, Auteur_id, Repond_A_ids) -> _ -> {erreur, "Les messages ne font pas partie de la même conversation"} end - end, + end, case Racine_id of {erreur, E} -> {erreur, E}; _ -> @@ -475,15 +475,16 @@ parents_id(M_id) -> % Renvoie les id des enfants d'un message M (les messages qui répondent à M) % ordrés du plus petit au plus grand. % @spec enfants_id(integer()) -> [integer()] -enfants_id(M) -> +enfants_id(M_id) -> resultat_transaction(mnesia:transaction(fun() -> - e( - qlc:sort( - q([E#reponse_minichat.repondant || E <- mnesia:table(reponse_minichat), E#reponse_minichat.cible =:= M]), - [{order, ascending}] - ), - [{tmpdir, ?KEY_SORT_TEMP_DIR}] - ) + case mnesia:index_read(reponse_minichat, M_id, #reponse_minichat.cible) of + Enfants when is_list(Enfants) -> + lists:sort(lists:map( + fun(#reponse_minichat{repondant = Repondant}) -> Repondant end, + Enfants + )); + _ -> [] + end end)). @@ -514,7 +515,7 @@ est_une_reponse_a_user(Id_user, Id_mess) -> a_repondu_a_message(Id_user, Id_mess) -> resultat_transaction(mnesia:transaction( fun() -> - case mnesia:match_object({reponse_minichat, '_', Id_mess}) of + case mnesia:index_read(reponse_minichat, Id_mess, #reponse_minichat.cible) of [] -> false; Reponses -> lists:any(