ADD avancement sur les trolls, partie d'administration terminé
[euphorik.git] / modules / erl / euphorik_bd.erl
index 7a9b582..e10ef2a 100755 (executable)
@@ -55,6 +55,7 @@
    put_troll/2,
    mod_troll/2,
    del_troll/1,
+   troll_by_id/1,
    
    % versions :
    update_version/1,
@@ -166,9 +167,9 @@ set_profile(Cookie, Login, Password, Pseudo, Email, Css, Nick_format, Page_princ
                case user_by_cookie(Cookie) of
                   {ok, User} ->               
                      case user_by_login(Login) of
-                        {ok, U} when User#user.login =/= [], U#user.id =/= User#user.id ->
+                        {ok, U} when Login =/= [], U#user.id =/= User#user.id ->
                            login_deja_pris;
-                        _ ->               
+                        _ ->
                            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)
@@ -247,8 +248,7 @@ users() ->
 user_by_cookie(Cookie) ->
    resultat_transaction(mnesia:transaction(
       fun() ->
-         Users = qlc:e(qlc:q([E || E <- mnesia:table(user), E#user.cookie =:= Cookie])),
-         case Users of
+         case qlc:e(qlc:q([E || E <- mnesia:table(user), E#user.cookie =:= Cookie])) of
             [User] -> {ok, User};
             _ -> erreur
          end
@@ -259,8 +259,7 @@ user_by_cookie(Cookie) ->
 user_by_id(ID) ->
    resultat_transaction(mnesia:transaction(
       fun() ->
-         Users = qlc:e(qlc:q([E || E <- mnesia:table(user), E#user.id =:= ID])),
-         case Users of
+         case qlc:e(qlc:q([E || E <- mnesia:table(user), E#user.id =:= ID])) of
             [User] -> {ok, User};
             _ -> erreur
          end
@@ -296,9 +295,8 @@ toggle_ek_master(User_id) ->
 user_by_login_password(Login, Password) ->
    resultat_transaction(mnesia:transaction(
       fun() ->
-         Users = qlc:e(qlc:q([E || E <- mnesia:table(user), E#user.login =:= Login, E#user.password =:= Password])),
-         case Users of
-            [User] -> {ok, User};
+         case qlc:e(qlc:q([E || E <- mnesia:table(user), E#user.login =:= Login, E#user.password =:= Password])) of
+            [User | _] -> {ok, User};
             _ -> erreur
          end
       end
@@ -310,7 +308,7 @@ user_by_mess(Id) ->
    resultat_transaction(mnesia:transaction(
       fun() ->
          case qlc:e(qlc:q([U || U <- mnesia:table(user), M <- mnesia:table(minichat), M#minichat.id =:= Id, M#minichat.auteur_id =:= U#user.id])) of
-            [User] -> {ok, User};
+            [User | _] -> {ok, User};
             _ -> erreur
          end
       end
@@ -587,7 +585,7 @@ can_register(IP) ->
 trolls() ->
    resultat_transaction(mnesia:transaction(
       fun() ->
-         qlc:e(qlc:q([T || T <- mnesia:table(troll)]))
+         qlc:e(qlc:q([T || T <- qlc:keysort(2, mnesia:table(troll))]))
       end
    )).
    
@@ -605,7 +603,7 @@ trolls(Last_id) ->
       _ ->
          case resultat_transaction(mnesia:transaction(
                fun() ->
-                  qlc:e(qlc:q([T || T <- mnesia:table(troll), T#troll.id > Last_id, T#troll.date_post =:= undefined]))
+                  qlc:e(qlc:q([T || T <- qlc:keysort(2, mnesia:table(troll)), T#troll.id > Last_id, T#troll.date_post =:= undefined]))
                end
             )) of
                [] -> % pas de trolls
@@ -697,6 +695,18 @@ del_troll(Troll_id) ->
       end
    ).
  
+troll_by_id(Troll_id) ->
+   resultat_transaction(mnesia:transaction(
+      fun() ->
+         case qlc:e(qlc:q([T || T <- mnesia:table(troll), T#troll.id =:= Troll_id])) of
+            [T] -> {ok, T};
+            _ ->
+               erreur
+         end
+      end
+   )).
+   
    
 update_version(1) ->
    mnesia:transform_table(