diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-05-23 12:25:13 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-05-23 12:25:13 +0300 |
commit | 6e8895f9e9d9864709f41ca84669de54342bd881 (patch) | |
tree | f0744615fa58325f8355fec17ad6a2980e4b35f6 /src/mod_offline_sql.erl | |
parent | Deprecate misc:encode_base64/1 and misc:decode_base64/1 (diff) |
Get rid of sql_queries.erl
Diffstat (limited to 'src/mod_offline_sql.erl')
-rw-r--r-- | src/mod_offline_sql.erl | 53 |
1 files changed, 35 insertions, 18 deletions
diff --git a/src/mod_offline_sql.erl b/src/mod_offline_sql.erl index 48b32be8..bcf5b7aa 100644 --- a/src/mod_offline_sql.erl +++ b/src/mod_offline_sql.erl @@ -54,7 +54,10 @@ store_message(#offline_msg{us = {LUser, LServer}} = M) -> <<"Offline Storage">>), XML = fxml:element_to_binary( xmpp:encode(NewPacket)), - case sql_queries:add_spool(LUser, LServer, XML) of + case ejabberd_sql:sql_query( + LServer, + ?SQL("insert into spool(username, xml) values " + "(%(LUser)s, %(XML)s)")) of {updated, _} -> ok; _ -> @@ -62,7 +65,7 @@ store_message(#offline_msg{us = {LUser, LServer}} = M) -> end. pop_messages(LUser, LServer) -> - case sql_queries:get_and_del_spool_msg_t(LServer, LUser) of + case get_and_del_spool_msg_t(LServer, LUser) of {atomic, {selected, Rs}} -> {ok, lists:flatmap( fun({_, XML}) -> @@ -82,12 +85,12 @@ remove_expired_messages(_LServer) -> {atomic, ok}. remove_old_messages(Days, LServer) -> - case catch ejabberd_sql:sql_query( - LServer, - [<<"DELETE FROM spool" - " WHERE created_at < " - "NOW() - INTERVAL '">>, - integer_to_list(Days), <<"' DAY;">>]) of + case ejabberd_sql:sql_query( + LServer, + [<<"DELETE FROM spool" + " WHERE created_at < " + "NOW() - INTERVAL '">>, + integer_to_list(Days), <<"' DAY;">>]) of {updated, N} -> ?INFO_MSG("~p message(s) deleted from offline spool", [N]); _Error -> @@ -96,13 +99,15 @@ remove_old_messages(Days, LServer) -> {atomic, ok}. remove_user(LUser, LServer) -> - sql_queries:del_spool_msg(LServer, LUser). + ejabberd_sql:sql_query( + LServer, + ?SQL("delete from spool where username=%(LUser)s")). read_message_headers(LUser, LServer) -> - case catch ejabberd_sql:sql_query( - LServer, - ?SQL("select @(xml)s, @(seq)d from spool" - " where username=%(LUser)s order by seq")) of + case ejabberd_sql:sql_query( + LServer, + ?SQL("select @(xml)s, @(seq)d from spool" + " where username=%(LUser)s order by seq")) of {selected, Rows} -> lists:flatmap( fun({XML, Seq}) -> @@ -144,10 +149,10 @@ remove_message(LUser, LServer, Seq) -> ok. read_all_messages(LUser, LServer) -> - case catch ejabberd_sql:sql_query( - LServer, - ?SQL("select @(xml)s from spool where " - "username=%(LUser)s order by seq")) of + case ejabberd_sql:sql_query( + LServer, + ?SQL("select @(xml)s from spool where " + "username=%(LUser)s order by seq")) of {selected, Rs} -> lists:flatmap( fun({XML}) -> @@ -161,7 +166,7 @@ read_all_messages(LUser, LServer) -> end. remove_all_messages(LUser, LServer) -> - sql_queries:del_spool_msg(LServer, LUser), + remove_user(LUser, LServer), {atomic, ok}. count_messages(LUser, LServer) -> @@ -232,3 +237,15 @@ el_to_offline_msg(El) -> ?ERROR_MSG("failed to get 'from' JID from offline XML ~p", [El]), {error, bad_jid_from} end. + +get_and_del_spool_msg_t(LServer, LUser) -> + F = fun () -> + Result = + ejabberd_sql:sql_query_t( + ?SQL("select @(username)s, @(xml)s from spool where " + "username=%(LUser)s order by seq;")), + ejabberd_sql:sql_query_t( + ?SQL("delete from spool where username=%(LUser)s;")), + Result + end, + ejabberd_sql:sql_transaction(LServer, F). |