1 |
|
-module(ejabberd_gen_mam_prefs). |
2 |
|
|
3 |
|
-type set_prefs_params() :: #{archive_id := undefined | mod_mam:archive_id(), |
4 |
|
owner := jid:jid(), |
5 |
|
default_mode := mod_mam:archive_behaviour(), |
6 |
|
always_jids := [jid:literal_jid()], |
7 |
|
never_jids := [jid:literal_jid()]}. |
8 |
|
|
9 |
|
-type get_prefs_params() :: #{archive_id := undefined | mod_mam:archive_id(), |
10 |
|
owner := jid:jid()}. |
11 |
|
|
12 |
|
-type get_behaviour_params() :: #{archive_id := undefined | mod_mam:archive_id(), |
13 |
|
owner => jid:jid(), |
14 |
|
room => jid:jid(), |
15 |
|
remote := jid:jid()}. |
16 |
|
|
17 |
|
-export_type([set_prefs_params/0, get_prefs_params/0, get_behaviour_params/0]). |
18 |
|
|
19 |
|
-callback get_behaviour(Acc, Params, Extra) -> gen_hook:hook_fn_ret(Acc) when |
20 |
|
Acc :: mod_mam:archive_behaviour(), |
21 |
|
Params :: get_behaviour_params(), |
22 |
|
Extra :: map(). |
23 |
|
|
24 |
|
-callback set_prefs(Acc, Params, Extra) -> gen_hook:hook_fn_ret(Acc) when |
25 |
|
Acc :: term(), |
26 |
|
Params :: set_prefs_params(), |
27 |
|
Extra :: map(). |
28 |
|
|
29 |
|
-callback get_prefs(Acc, Params, Extra) -> gen_hook:hook_fn_ret(Acc) when |
30 |
|
Acc :: mod_mam:preference() | {error, Reason :: term()}, |
31 |
|
Params :: get_prefs_params(), |
32 |
|
Extra :: map(). |