est_une_reponse_a_user/2,
% set :\r
update_pseudo_user/2,
- set_profile/6,
+ set_profile/8,
update_date_derniere_connexion/1,
nouveau_user/2,
nouveau_user/3,
% Connexion à la base de données de yaws sur overnux
connect() ->
mnesia:start(),
- mnesia:change_config(extra_db_nodes, [yaws@Plop]).
+ mnesia:change_config(extra_db_nodes, [yaws@flynux]).
% Efface tous les users, minichat_reponse et minichat.\r
% Mise à par Cookie les autres peuvent être undefined ce qui veut dire qu'ils ne seront pas modifié.\r
-set_profile(Cookie, Login, Password, Pseudo, Email, Css) ->
+set_profile(Cookie, Login, Password, Pseudo, Email, Css, Page_principale, Conversations) ->
resultat_transaction(mnesia:transaction(
fun() ->
case user_by_cookie(Cookie) of
{ok, U} when U#user.id =/= User#user.id ->\r
login_deja_pris;\r
_ -> \r
- User_modifie = User#user{\r
+ User_modifie = User#user{
+ % 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)\r
login = if is_list(Login) -> Login; true -> User#user.login end,\r
password = if is_list(Password) -> Password; true -> User#user.password end,\r
pseudo = if is_list(Pseudo) -> Pseudo; true -> User#user.pseudo end,\r
email = if is_list(Email) -> Email; true -> User#user.email end,\r
- css = if is_list(Css) -> Css; true -> User#user.css end\r
+ css = if is_list(Css) -> Css; true -> User#user.css 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\r
},\r
mnesia:write(User_modifie),\r
ok\r
resultat_transaction(mnesia:transaction(fun() ->
ceiling(length(qlc:e(qlc:q([E#minichat.id || E <- mnesia:table(minichat)]))) / N)
end)).
-
-
-% Renvoie le numéro de la page sur lequel se trouve le message M en sachant qu'il y a N messages par page.
-%~ page(M, N) ->
- %~ resultat_transaction(mnesia:transaction(fun() ->
- %~ ceiling((length(qlc:e(qlc:q([E || E <- mnesia:table(minichat), E#minichat.id >= M])))) / N)
- %~ end)).\r
-
+
% Bizarre, cette fonction n'existe pas dans la stdlib.
ceiling(X) ->