aboutsummaryrefslogtreecommitdiff
path: root/src/mod_announce_sql.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_announce_sql.erl')
-rw-r--r--src/mod_announce_sql.erl65
1 files changed, 30 insertions, 35 deletions
diff --git a/src/mod_announce_sql.erl b/src/mod_announce_sql.erl
index 692c8fae4..762c97ad6 100644
--- a/src/mod_announce_sql.erl
+++ b/src/mod_announce_sql.erl
@@ -9,6 +9,8 @@
-module(mod_announce_sql).
-behaviour(mod_announce).
+-compile([{parse_transform, ejabberd_sql_pt}]).
+
%% API
-export([init/2, set_motd_users/2, set_motd/2, delete_motd/1,
get_motd/1, is_motd_user/2, set_motd_user/2, import/1,
@@ -16,6 +18,7 @@
-include("jlib.hrl").
-include("mod_announce.hrl").
+-include("ejabberd_sql_pt.hrl").
%%%===================================================================
%%% API
@@ -27,37 +30,35 @@ set_motd_users(LServer, USRs) ->
F = fun() ->
lists:foreach(
fun({U, _S, _R}) ->
- Username = ejabberd_sql:escape(U),
- sql_queries:update_t(
- <<"motd">>,
- [<<"username">>, <<"xml">>],
- [Username, <<"">>],
- [<<"username='">>, Username, <<"'">>])
+ ?SQL_UPSERT_T(
+ "motd",
+ ["!username=%(U)s",
+ "xml=''"])
end, USRs)
end,
ejabberd_sql:sql_transaction(LServer, F).
set_motd(LServer, Packet) ->
- XML = ejabberd_sql:escape(fxml:element_to_binary(Packet)),
+ XML = fxml:element_to_binary(Packet),
F = fun() ->
- sql_queries:update_t(
- <<"motd">>,
- [<<"username">>, <<"xml">>],
- [<<"">>, XML],
- [<<"username=''">>])
+ ?SQL_UPSERT_T(
+ "motd",
+ ["!username=''",
+ "xml=%(XML)s"])
end,
ejabberd_sql:sql_transaction(LServer, F).
delete_motd(LServer) ->
F = fun() ->
- ejabberd_sql:sql_query_t([<<"delete from motd;">>])
+ ejabberd_sql:sql_query_t(?SQL("delete from motd"))
end,
ejabberd_sql:sql_transaction(LServer, F).
get_motd(LServer) ->
case catch ejabberd_sql:sql_query(
- LServer, [<<"select xml from motd where username='';">>]) of
- {selected, [<<"xml">>], [[XML]]} ->
+ LServer,
+ ?SQL("select @(xml)s from motd where username=''")) of
+ {selected, [{XML}]} ->
case fxml_stream:parse_element(XML) of
{error, _} ->
error;
@@ -69,46 +70,40 @@ get_motd(LServer) ->
end.
is_motd_user(LUser, LServer) ->
- Username = ejabberd_sql:escape(LUser),
case catch ejabberd_sql:sql_query(
- LServer,
- [<<"select username from motd "
- "where username='">>, Username, <<"';">>]) of
- {selected, [<<"username">>], [_|_]} ->
+ LServer,
+ ?SQL("select @(username)s from motd"
+ " where username=%(LUser)s")) of
+ {selected, [_|_]} ->
true;
_ ->
false
end.
set_motd_user(LUser, LServer) ->
- Username = ejabberd_sql:escape(LUser),
F = fun() ->
- sql_queries:update_t(
- <<"motd">>,
- [<<"username">>, <<"xml">>],
- [Username, <<"">>],
- [<<"username='">>, Username, <<"'">>])
- end,
+ ?SQL_UPSERT_T(
+ "motd",
+ ["!username=%(LUser)s",
+ "xml=''"])
+ end,
ejabberd_sql:sql_transaction(LServer, F).
export(_Server) ->
[{motd,
fun(Host, #motd{server = LServer, packet = El})
when LServer == Host ->
- [[<<"delete from motd where username='';">>],
- [<<"insert into motd(username, xml) values ('', '">>,
- ejabberd_sql:escape(fxml:element_to_binary(El)),
- <<"');">>]];
+ XML = fxml:element_to_binary(El),
+ [?SQL("delete from motd where username='';"),
+ ?SQL("insert into motd(username, xml) values ('', %(XML)s);")];
(_Host, _R) ->
[]
end},
{motd_users,
fun(Host, #motd_users{us = {LUser, LServer}})
when LServer == Host, LUser /= <<"">> ->
- Username = ejabberd_sql:escape(LUser),
- [[<<"delete from motd where username='">>, Username, <<"';">>],
- [<<"insert into motd(username, xml) values ('">>,
- Username, <<"', '');">>]];
+ [?SQL("delete from motd where username=%(LUser)s;"),
+ ?SQL("insert into motd(username, xml) values (%(LUser)s, '');")];
(_Host, _R) ->
[]
end}].