aboutsummaryrefslogtreecommitdiff
path: root/src/mod_announce_odbc.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2012-04-06 12:31:29 +1000
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2012-04-06 12:31:29 +1000
commitcea23b055b26ff851944c93c54c58057df9f0fed (patch)
tree2c93bbd185630d4dcba3535a2a973092d281aeb3 /src/mod_announce_odbc.erl
parentODBC support for mod_shared_roster (diff)
Get rid of duplicated code
Diffstat (limited to 'src/mod_announce_odbc.erl')
-rw-r--r--src/mod_announce_odbc.erl46
1 files changed, 12 insertions, 34 deletions
diff --git a/src/mod_announce_odbc.erl b/src/mod_announce_odbc.erl
index 7e1e9dca0..101f8aae2 100644
--- a/src/mod_announce_odbc.erl
+++ b/src/mod_announce_odbc.erl
@@ -742,10 +742,11 @@ announce_motd(Host, Packet) ->
lists:foreach(
fun({U, _S, _R}) ->
Username = ejabberd_odbc:escape(U),
- update_t("motd",
- ["username", "xml"],
- [Username, ""],
- ["username='", Username, "'"])
+ odbc_queries:update_t(
+ "motd",
+ ["username", "xml"],
+ [Username, ""],
+ ["username='", Username, "'"])
end, Sessions)
end,
LServer = jlib:nameprep(Host),
@@ -777,10 +778,11 @@ announce_motd_update(LServer, Packet) ->
announce_motd_delete(LServer),
XML = ejabberd_odbc:escape(xml:element_to_binary(Packet)),
F = fun() ->
- update_t("motd",
- ["username", "xml"],
- ["", XML],
- ["username=''"])
+ odbc_queries:update_t(
+ "motd",
+ ["username", "xml"],
+ ["", XML],
+ ["username=''"])
end,
ejabberd_odbc:sql_transaction(LServer, F).
@@ -829,8 +831,8 @@ send_motd(#jid{luser = LUser, lserver = LServer} = JID) when LUser /= "" ->
Local = jlib:make_jid("", LServer, ""),
ejabberd_router:route(Local, JID, Packet),
F = fun() ->
- update_t(
- ["motd"],
+ odbc_queries:update_t(
+ "motd",
["username", "xml"],
[Username, ""],
["username='", Username, "'"])
@@ -881,27 +883,3 @@ send_announcement_to_all(Host, SubjectS, BodyS) ->
Dest = jlib:make_jid(U, S, R),
ejabberd_router:route(Local, Dest, Packet)
end, Sessions).
-
-%% Almost a copy of string:join/2.
-%% We use this version because string:join/2 is relatively
-%% new function (introduced in R12B-0).
-join([], _Sep) ->
- [];
-join([H|T], Sep) ->
- [H, [[Sep, X] || X <- T]].
-
-%% Safe atomic update.
-update_t(Table, Fields, Vals, Where) ->
- UPairs = lists:zipwith(fun(A, B) -> A ++ "='" ++ B ++ "'" end,
- Fields, Vals),
- case ejabberd_odbc:sql_query_t(
- ["update ", Table, " set ",
- join(UPairs, ", "),
- " where ", Where, ";"]) of
- {updated, 1} ->
- ok;
- _ ->
- ejabberd_odbc:sql_query_t(
- ["insert into ", Table, "(", join(Fields, ", "),
- ") values ('", join(Vals, "', '"), "');"])
- end.