diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-05-22 16:14:28 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-05-22 16:14:28 +0300 |
commit | d7878ef1316d68910c7e2a1b67476bc210f1bc45 (patch) | |
tree | 3a7dca70644916f9bac627a00c1e2789a2682436 /src/mod_announce_riak.erl | |
parent | Describe command arguments and results in mod_muc_admin (diff) |
Implement cache for mod_announce
Diffstat (limited to 'src/mod_announce_riak.erl')
-rw-r--r-- | src/mod_announce_riak.erl | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/src/mod_announce_riak.erl b/src/mod_announce_riak.erl index b231dec9..04a29a68 100644 --- a/src/mod_announce_riak.erl +++ b/src/mod_announce_riak.erl @@ -46,47 +46,48 @@ set_motd_users(_LServer, USRs) -> ok = ejabberd_riak:put(#motd_users{us = {U, S}}, motd_users_schema(), [{'2i', [{<<"server">>, S}]}]) - end, USRs), - {atomic, ok} - catch _:{badmatch, Err} -> - {atomic, Err} + end, USRs) + catch _:{badmatch, {error, _} = Err} -> + Err end. set_motd(LServer, Packet) -> - {atomic, ejabberd_riak:put(#motd{server = LServer, - packet = Packet}, - motd_schema())}. + ejabberd_riak:put(#motd{server = LServer, + packet = Packet}, + motd_schema()). delete_motd(LServer) -> try ok = ejabberd_riak:delete(motd, LServer), ok = ejabberd_riak:delete_by_index(motd_users, <<"server">>, - LServer), - {atomic, ok} - catch _:{badmatch, Err} -> - {atomic, Err} + LServer) + catch _:{badmatch, {error, _} = Err} -> + Err end. get_motd(LServer) -> case ejabberd_riak:get(motd, motd_schema(), LServer) of {ok, #motd{packet = Packet}} -> {ok, Packet}; - _ -> - error + {error, notfound} -> + error; + {error, _} = Err -> + Err end. is_motd_user(LUser, LServer) -> case ejabberd_riak:get(motd_users, motd_users_schema(), {LUser, LServer}) of - {ok, #motd_users{}} -> true; - _ -> false + {ok, #motd_users{}} -> {ok, true}; + {error, notfound} -> {ok, false}; + {error, _} = Err -> Err end. set_motd_user(LUser, LServer) -> - {atomic, ejabberd_riak:put( - #motd_users{us = {LUser, LServer}}, motd_users_schema(), - [{'2i', [{<<"server">>, LServer}]}])}. + ejabberd_riak:put( + #motd_users{us = {LUser, LServer}}, motd_users_schema(), + [{'2i', [{<<"server">>, LServer}]}]). import(LServer, <<"motd">>, [<<>>, XML, _TimeStamp]) -> El = fxml_stream:parse_element(XML), |