Skip to content

Commit

Permalink
Improve error handling in offline
Browse files Browse the repository at this point in the history
  • Loading branch information
Kamil Waz committed Nov 21, 2022
1 parent 0b93aa8 commit 1d4a7ff
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
8 changes: 4 additions & 4 deletions src/ejabberd_admin.erl
Original file line number Diff line number Diff line change
Expand Up @@ -334,16 +334,16 @@ do_register(List) ->
%%% Purge DB
%%%

-spec delete_expired_messages(jid:lserver()) -> {ok, iolist()} | {error, iolist()}.
-spec delete_expired_messages(binary()) -> {ok, iolist()} | {error, iolist()}.
delete_expired_messages(Domain) ->
case mod_offline_api:delete_expired_messages(Domain) of
case mod_offline_api:delete_expired_messages(jid:nameprep(Domain)) of
{ok, _} = Result -> Result;
{_, Message} -> {error, Message}
end.

-spec delete_old_messages(jid:lserver(), Days :: integer()) -> {ok, iolist()} | {error, iolist()}.
-spec delete_old_messages(binary(), Days :: integer()) -> {ok, iolist()} | {error, iolist()}.
delete_old_messages(Domain, Days) ->
case mod_offline_api:delete_old_messages(Domain, Days) of
case mod_offline_api:delete_old_messages(jid:nameprep(Domain), Days) of
{ok, _} = Result -> Result;
{_, Message} -> {error, Message}
end.
18 changes: 9 additions & 9 deletions src/offline/mod_offline_api.erl
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,33 @@

-export([delete_expired_messages/1, delete_old_messages/2]).

-spec delete_expired_messages(jid:lserver()) ->
{ok | domain_not_found | server_error, iolist()}.
-type(api_result()) :: {ok, string()} | {domain_not_found | server_error, string()}.

-spec delete_expired_messages(jid:lserver()) -> api_result().
delete_expired_messages(Domain) ->
call_for_loaded_module(Domain, fun remove_expired_messages/2, {Domain}).
call_for_loaded_module(Domain, fun remove_expired_messages/2, [Domain]).

-spec delete_old_messages(jid:lserver(), Days :: integer()) ->
{ok | domain_not_found | server_error, iolist()}.
-spec delete_old_messages(jid:lserver(), Days :: integer()) -> api_result().
delete_old_messages(Domain, Days) ->
call_for_loaded_module(Domain, fun remove_old_messages/2, {Domain, Days}).
call_for_loaded_module(Domain, fun remove_old_messages/3, [Domain, Days]).

call_for_loaded_module(Domain, Function, Args) ->
case mongoose_domain_api:get_domain_host_type(Domain) of
{ok, HostType} ->
Function(Args, HostType);
apply(Function, [HostType | Args]);
{error, not_found} ->
{domain_not_found, "Unknown domain"}
end.

remove_old_messages({Domain, Days}, HostType) ->
remove_old_messages(HostType, Domain, Days) ->
case mod_offline:remove_old_messages(HostType, Domain, Days) of
{ok, C} ->
{ok, io_lib:format("Removed ~p messages", [C])};
{error, Reason} ->
{server_error, io_lib:format("Can't remove old messages: ~n~p", [Reason])}
end.

remove_expired_messages({Domain}, HostType) ->
remove_expired_messages(HostType, Domain) ->
case mod_offline:remove_expired_messages(HostType, Domain) of
{ok, C} ->
{ok, io_lib:format("Removed ~p messages", [C])};
Expand Down

0 comments on commit 1d4a7ff

Please sign in to comment.