diff options
Diffstat (limited to 'src/mod_roster.erl')
-rw-r--r-- | src/mod_roster.erl | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/src/mod_roster.erl b/src/mod_roster.erl index daed432b9..d18880353 100644 --- a/src/mod_roster.erl +++ b/src/mod_roster.erl @@ -1754,182 +1754,3 @@ import(_LServer, riak, #roster_version{} = RV) -> ejabberd_riak:put(RV); import(_, _, _) -> pass. - -riak_get_roster(LServer, Username) -> - ejabberd_riak:get_by_index( - LServer, <<"roster">>, <<"user_bin">>, Username). - -riak_get_roster_jid_groups(LServer, Username) -> - case ejabberd_riak:get_by_index( - LServer, <<"roster_groups">>, <<"user_bin">>, Username) of - {ok, JGs} -> - Res = lists:map(fun riak_binary_to_groups/1, JGs), - {ok, Res}; - Error -> Error - end. - -riak_get_roster_groups(LServer, Username, SJID) -> - Key = <<Username/binary, $/, SJID/binary>>, - case ejabberd_riak:get(LServer, <<"roster_groups">>, Key) of - {ok, Gs} -> - {_, Res} = riak_binary_to_groups(Gs), - {ok, Res}; - {error, notfound} -> - {ok, []}; - Error -> Error - end. - -riak_get_roster_by_jid(LServer, Username, SJID) -> - Key = <<Username/binary, $/, SJID/binary>>, - ejabberd_riak:get(LServer, <<"roster">>, Key). - -riak_del_roster(LServer, Username, SJID) -> - Key = <<Username/binary, $/, SJID/binary>>, - ejabberd_riak:delete(LServer, <<"roster">>, Key). - -riak_update_roster(LServer, Username, SJID, ItemVals, ItemGroups) -> - Key = <<Username/binary, $/, SJID/binary>>, - ejabberd_riak:put( - LServer, <<"roster">>, Key, ItemVals, - [{<<"user_bin">>, Username}]), - ejabberd_riak:put( - LServer, <<"roster_groups">>, Key, ItemGroups, - [{<<"user_bin">>, Username}]). - -riak_roster_subscribe(LServer, Username, SJID, ItemVals) -> - Key = <<Username/binary, $/, SJID/binary>>, - ejabberd_riak:put( - LServer, <<"roster">>, Key, ItemVals, - [{<<"user_bin">>, Username}]). - -riak_get_subscription(LServer, Username, SJID) -> - case riak_get_roster_by_jid(LServer, Username, SJID) of - {ok, SR} -> - case riak_raw_to_record(LServer, SR) of - error -> - {error, bad_record}; - R -> - {ok, R#roster.subscription} - end; - Error -> - Error - end. - -riak_set_roster_version(LServer, Username, RosterVersion) -> - ejabberd_riak:put(LServer, <<"roster_version">>, - Username, RosterVersion). - - -riak_del_user_roster(LServer, Username) -> - case ejabberd_riak:get_keys_by_index( - LServer, <<"roster">>, <<"user_bin">>, Username) of - {ok, Keys} -> - lists:foreach( - fun(Key) -> - ejabberd_riak:delete(LServer, <<"roster">>, Key) - end, Keys); - _ -> - ok - end, - case ejabberd_riak:get_keys_by_index( - LServer, <<"roster_groups">>, <<"user_bin">>, Username) of - {ok, GKeys} -> - lists:foreach( - fun(Key) -> - ejabberd_riak:delete(LServer, <<"roster_groups">>, Key) - end, GKeys); - _ -> - ok - end, - ejabberd_riak:delete(LServer, <<"roster_version">>, Username). - -riak_raw_to_record(LServer, - <<UsernameLen:16, Username:UsernameLen/binary, - SJIDLen:16, SJID:SJIDLen/binary, - NickLen:16, Nick:NickLen/binary, - SSubscription, SAsk, - SAskMessageLen:16, SAskMessage:SAskMessageLen/binary>>) -> - User = Username, - case jlib:string_to_jid(SJID) of - error -> - error; - JID -> - LJID = jlib:jid_tolower(JID), - Subscription = case SSubscription of - $B -> both; - $T -> to; - $F -> from; - _ -> none - end, - Ask = case SAsk of - $S -> subscribe; - $U -> unsubscribe; - $B -> both; - $O -> out; - $I -> in; - _ -> none - end, - #roster{usj = {User, LServer, LJID}, - us = {User, LServer}, - jid = LJID, - name = Nick, - subscription = Subscription, - ask = Ask, - askmessage = SAskMessage} - end. - -riak_record_to_string(#roster{us = {User, _Server}, - jid = JID, - name = Name, - subscription = Subscription, - ask = Ask, - askmessage = AskMessage}) -> - Username = User, - UsernameLen = size(Username), - SJID = jlib:jid_to_string(jlib:jid_tolower(JID)), - SJIDLen = size(SJID), - Nick = Name, - NickLen = size(Nick), - SSubscription = case Subscription of - both -> $B; - to -> $T; - from -> $F; - none -> $N - end, - SAsk = case Ask of - subscribe -> $S; - unsubscribe -> $U; - both -> $B; - out -> $O; - in -> $I; - none -> $N - end, - SAskMessage = iolist_to_binary(AskMessage), - SAskMessageLen = size(SAskMessage), - <<UsernameLen:16, Username/binary, - SJIDLen:16, SJID/binary, - NickLen:16, Nick/binary, - SSubscription, SAsk, - SAskMessageLen:16, SAskMessage/binary>>. - -riak_groups_to_binary(#roster{jid = JID, groups = Groups}) -> - SJID = jlib:jid_to_string(jlib:jid_tolower(JID)), - SJIDLen = size(SJID), - %% Empty groups do not need to be converted to string to be inserted in - %% the database - lists:foldl( - fun([], Acc) -> - Acc; - (Group, Acc) -> - G = Group, - Len = size(G), - <<Acc/binary, Len:16, G/binary>> - end, <<SJIDLen:16, SJID/binary>>, Groups). - -riak_binary_to_groups(<<Len:16, SJID:Len/binary, Rest/binary>>) -> - {SJID, riak_binary_to_groups(Rest, [])}. - -riak_binary_to_groups(<<Len:16, G:Len/binary, Rest/binary>>, Res) -> - riak_binary_to_groups(Rest, [G | Res]); -riak_binary_to_groups(_, Res) -> - Res. |