aboutsummaryrefslogtreecommitdiff
path: root/src/mod_private.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2014-07-14 07:49:02 +0400
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2014-07-14 08:24:44 +0400
commit792b5a24dfca19fe62406e555675a236c09c20e4 (patch)
treed26b12b2cf2992976711fe4d226d47e8b937c3c7 /src/mod_private.erl
parentMerge pull request #248 from mathiasertl/master (diff)
Serialize records to proplists before storing then in Riak
Diffstat (limited to 'src/mod_private.erl')
-rw-r--r--src/mod_private.erl14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/mod_private.erl b/src/mod_private.erl
index ce002a3e0..9fdf09dd8 100644
--- a/src/mod_private.erl
+++ b/src/mod_private.erl
@@ -154,6 +154,7 @@ set_data(LUser, LServer, {XMLNS, El}, odbc) ->
set_data(LUser, LServer, {XMLNS, El}, riak) ->
ejabberd_riak:put(#private_storage{usns = {LUser, LServer, XMLNS},
xml = El},
+ private_storage_schema(),
[{'2i', [{<<"us">>, {LUser, LServer}}]}]).
get_data(LUser, LServer, Data) ->
@@ -191,7 +192,8 @@ get_data(LUser, LServer, odbc, [{XMLNS, El} | Els],
end;
get_data(LUser, LServer, riak, [{XMLNS, El} | Els],
Res) ->
- case ejabberd_riak:get(private_storage, {LUser, LServer, XMLNS}) of
+ case ejabberd_riak:get(private_storage, private_storage_schema(),
+ {LUser, LServer, XMLNS}) of
{ok, #private_storage{xml = NewEl}} ->
get_data(LUser, LServer, riak, Els, [NewEl|Res]);
_ ->
@@ -226,13 +228,17 @@ get_all_data(LUser, LServer, odbc) ->
end;
get_all_data(LUser, LServer, riak) ->
case ejabberd_riak:get_by_index(
- private_storage, <<"us">>, {LUser, LServer}) of
+ private_storage, private_storage_schema(),
+ <<"us">>, {LUser, LServer}) of
{ok, Res} ->
[El || #private_storage{xml = El} <- Res];
_ ->
[]
end.
+private_storage_schema() ->
+ {record_info(fields, private_storage), #private_storage{}}.
+
remove_user(User, Server) ->
LUser = jlib:nodeprep(User),
LServer = jlib:nameprep(Server),
@@ -307,7 +313,9 @@ import(LServer) ->
import(_LServer, mnesia, #private_storage{} = PS) ->
mnesia:dirty_write(PS);
+
import(_LServer, riak, #private_storage{usns = {LUser, LServer, _}} = PS) ->
- ejabberd_riak:put(PS, [{'2i', [{<<"us">>, {LUser, LServer}}]}]);
+ ejabberd_riak:put(PS, private_storage_schema(),
+ [{'2i', [{<<"us">>, {LUser, LServer}}]}]);
import(_, _, _) ->
pass.