Skip to content

Commit

Permalink
mod_offline: make some database callbacks optional
Browse files Browse the repository at this point in the history
  • Loading branch information
zinid committed Jan 8, 2019
1 parent 06d69c5 commit edf03b0
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/mod_offline.erl
Expand Up @@ -101,6 +101,8 @@
-callback remove_all_messages(binary(), binary()) -> {atomic, any()}.
-callback count_messages(binary(), binary()) -> non_neg_integer().

-optional_callbacks([remove_expired_messages/1, remove_old_messages/2]).

depends(_Host, _Opts) ->
[].

Expand Down Expand Up @@ -551,12 +553,18 @@ privacy_check_packet(#{lserver := LServer} = State, Pkt, Dir) ->
remove_expired_messages(Server) ->
LServer = jid:nameprep(Server),
Mod = gen_mod:db_mod(LServer, ?MODULE),
Mod:remove_expired_messages(LServer).
case erlang:function_exported(Mod, remove_expired_messages, 1) of
true -> Mod:remove_expired_messages(LServer);
false -> erlang:error(not_implemented)
end.

remove_old_messages(Days, Server) ->
LServer = jid:nameprep(Server),
Mod = gen_mod:db_mod(LServer, ?MODULE),
Mod:remove_old_messages(Days, LServer).
case erlang:function_exported(Mod, remove_old_messages, 2) of
true -> Mod:remove_old_messages(Days, LServer);
false -> erlang:error(not_implemented)
end.

-spec remove_user(binary(), binary()) -> ok.
remove_user(User, Server) ->
Expand Down

0 comments on commit edf03b0

Please sign in to comment.