X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=modules%2Ferl%2Feuphorik_minichat.erl;h=2e2f406e004cc8e8736317fabc96a0780369134c;hb=7f8025543a7a5d614ec47d18026dc0feb3338fdb;hp=53fe1e3f1ce4cf8a4de58bc6f971d3efbb942cef;hpb=bacec85920574375f4b8df20d6a0457e1fffc658;p=euphorik.git diff --git a/modules/erl/euphorik_minichat.erl b/modules/erl/euphorik_minichat.erl index 53fe1e3..2e2f406 100755 --- a/modules/erl/euphorik_minichat.erl +++ b/modules/erl/euphorik_minichat.erl @@ -13,6 +13,7 @@ messages/3, message_by_id/1, messages_by_ids/1, + message_existe/1, reponses/0, repond_a/1, nb_page/1, @@ -205,13 +206,14 @@ set_profile(Cookie, Login, Password, Pseudo, Email, Css, Page_principale, Conver login_deja_pris; _ -> User_modifie = User#user{ - % TODO : pourquoi ne pas tester avec la valeur "undefined" plutôt qu'avec "is_list" ? + % TODO : pourquoi ne pas tester avec la valeur "undefined" plutôt qu'avec "is_list" ? + % TODO : validation plus strict des données (pas de page négative dans les conv par exemple) login = if is_list(Login) -> Login; true -> User#user.login end, password = if is_list(Password) -> Password; true -> User#user.password end, pseudo = if is_list(Pseudo) -> Pseudo; true -> User#user.pseudo end, email = if is_list(Email) -> Email; true -> User#user.email end, css = if is_list(Css) -> Css; true -> User#user.css end, - page_principale = if is_list(Page_principale) -> Page_principale; true -> User#user.page_principale end, + page_principale = if is_integer(Page_principale), Page_principale > 0 -> Page_principale; true -> User#user.page_principale end, conversations = if is_list(Conversations) -> Conversations; true -> User#user.conversations end }, mnesia:write(User_modifie), @@ -221,7 +223,7 @@ set_profile(Cookie, Login, Password, Pseudo, Email, Css, Page_principale, Conver end end )). - + % Met à jour la date de la dernière connexion d'un utilisateur à maintenant update_date_derniere_connexion(UserId) -> @@ -363,7 +365,15 @@ messages_by_ids(Ids) -> %io:format("~s~n", [qlc:info(Query)]), qlc:e(Query) end - )). + )). + + +% Est-ce qu'un message existe ? Renvoie un boolean. +% TODO : ya pas plus simple ? +message_existe(Id) -> + resultat_transaction(mnesia:transaction(fun() -> + length(qlc:e(qlc:q([E#minichat.id || E <- mnesia:table(minichat), E#minichat.id =:= Id]))) =:= 1 + end)). % Renvoie le nombre de page total en fonction du nombre de message par page N