From 1d4a7ffae3e3a19aa1c1002615820d2063cf56ff Mon Sep 17 00:00:00 2001 From: Kamil Waz Date: Thu, 17 Nov 2022 15:46:53 +0100 Subject: [PATCH] Improve error handling in offline --- src/ejabberd_admin.erl | 8 ++++---- src/offline/mod_offline_api.erl | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl index e422b1f2576..346f5b49ed2 100644 --- a/src/ejabberd_admin.erl +++ b/src/ejabberd_admin.erl @@ -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. diff --git a/src/offline/mod_offline_api.erl b/src/offline/mod_offline_api.erl index 9c76fc5ee1d..12bed441083 100644 --- a/src/offline/mod_offline_api.erl +++ b/src/offline/mod_offline_api.erl @@ -2,25 +2,25 @@ -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])}; @@ -28,7 +28,7 @@ remove_old_messages({Domain, Days}, HostType) -> {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])};