summaryrefslogtreecommitdiff
path: root/src/mod_roster_sql.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2016-05-04 21:01:05 +0300
committerAlexey Shchepin <alexey@process-one.net>2016-05-05 15:51:58 +0300
commit0ea0ba3004282636c95bc86c3aac8755fcf7f8b1 (patch)
tree1330b6db70f7f6100c1997851faece5ad569391f /src/mod_roster_sql.erl
parentMerge remote-tracking branch 'processone/pr/1088' (diff)
Update more SQL queries
Diffstat (limited to 'src/mod_roster_sql.erl')
-rw-r--r--src/mod_roster_sql.erl41
1 files changed, 12 insertions, 29 deletions
diff --git a/src/mod_roster_sql.erl b/src/mod_roster_sql.erl
index 616d0ec6..89997809 100644
--- a/src/mod_roster_sql.erl
+++ b/src/mod_roster_sql.erl
@@ -8,6 +8,8 @@
%%%-------------------------------------------------------------------
-module(mod_roster_sql).
+-compile([{parse_transform, ejabberd_sql_pt}]).
+
-behaviour(mod_roster).
%% API
@@ -20,6 +22,7 @@
-include("jlib.hrl").
-include("mod_roster.hrl").
+-include("ejabberd_sql_pt.hrl").
%%%===================================================================
%%% API
@@ -34,15 +37,13 @@ read_roster_version(LUser, LServer) ->
end.
write_roster_version(LUser, LServer, InTransaction, Ver) ->
- Username = ejabberd_sql:escape(LUser),
- EVer = ejabberd_sql:escape(Ver),
if InTransaction ->
- sql_queries:set_roster_version(Username, EVer);
+ sql_queries:set_roster_version(LUser, Ver);
true ->
sql_queries:sql_transaction(
LServer,
fun () ->
- sql_queries:set_roster_version(Username, EVer)
+ sql_queries:set_roster_version(LUser, Ver)
end)
end.
@@ -167,26 +168,20 @@ read_subscription_and_groups(LUser, LServer, LJID) ->
export(_Server) ->
[{roster,
- fun(Host, #roster{usj = {LUser, LServer, LJID}} = R)
+ fun(Host, #roster{usj = {_LUser, LServer, _LJID}} = R)
when LServer == Host ->
- Username = ejabberd_sql:escape(LUser),
- SJID = ejabberd_sql:escape(jid:to_string(LJID)),
- ItemVals = record_to_string(R),
- ItemGroups = groups_to_string(R),
- sql_queries:update_roster_sql(Username, SJID,
- ItemVals, ItemGroups);
+ ItemVals = record_to_row(R),
+ ItemGroups = R#roster.groups,
+ sql_queries:update_roster_sql(ItemVals, ItemGroups);
(_Host, _R) ->
[]
end},
{roster_version,
fun(Host, #roster_version{us = {LUser, LServer}, version = Ver})
when LServer == Host ->
- Username = ejabberd_sql:escape(LUser),
- SVer = ejabberd_sql:escape(Ver),
- [[<<"delete from roster_version where username='">>,
- Username, <<"';">>],
- [<<"insert into roster_version(username, version) values('">>,
- Username, <<"', '">>, SVer, <<"');">>]];
+ [?SQL("delete from roster_version where username=%(LUser)s;"),
+ ?SQL("insert into roster_version(username, version) values("
+ " %(LUser)s, %(Ver)s);")];
(_Host, _R) ->
[]
end}].
@@ -294,15 +289,3 @@ record_to_row(
none -> <<"N">>
end,
{LUser, SJID, Name, SSubscription, SAsk, AskMessage}.
-
-groups_to_string(#roster{us = {User, _Server},
- jid = JID, groups = Groups}) ->
- Username = ejabberd_sql:escape(User),
- SJID =
- ejabberd_sql:escape(jid:to_string(jid:tolower(JID))),
- lists:foldl(fun (<<"">>, Acc) -> Acc;
- (Group, Acc) ->
- G = ejabberd_sql:escape(Group),
- [[Username, SJID, G] | Acc]
- end,
- [], Groups).