aboutsummaryrefslogtreecommitdiff
path: root/src/mod_last.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_last.erl
parentMerge pull request #248 from mathiasertl/master (diff)
Serialize records to proplists before storing then in Riak
Diffstat (limited to 'src/mod_last.erl')
-rw-r--r--src/mod_last.erl11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mod_last.erl b/src/mod_last.erl
index d3ec3284a..a20da3130 100644
--- a/src/mod_last.erl
+++ b/src/mod_last.erl
@@ -169,7 +169,8 @@ get_last(LUser, LServer, mnesia) ->
{ok, TimeStamp, Status}
end;
get_last(LUser, LServer, riak) ->
- case ejabberd_riak:get(last_activity, {LUser, LServer}) of
+ case ejabberd_riak:get(last_activity, last_activity_schema(),
+ {LUser, LServer}) of
{ok, #last_activity{timestamp = TimeStamp,
status = Status}} ->
{ok, TimeStamp, Status};
@@ -250,7 +251,8 @@ store_last_info(LUser, LServer, TimeStamp, Status,
US = {LUser, LServer},
{atomic, ejabberd_riak:put(#last_activity{us = US,
timestamp = TimeStamp,
- status = Status})};
+ status = Status},
+ last_activity_schema())};
store_last_info(LUser, LServer, TimeStamp, Status,
odbc) ->
Username = ejabberd_odbc:escape(LUser),
@@ -301,6 +303,9 @@ update_table() ->
mnesia:transform_table(last_activity, ignore, Fields)
end.
+last_activity_schema() ->
+ {record_info(fields, last_activity), #last_activity{}}.
+
export(_Server) ->
[{last_activity,
fun(Host, #last_activity{us = {LUser, LServer},
@@ -331,7 +336,7 @@ import(LServer) ->
import(_LServer, mnesia, #last_activity{} = LA) ->
mnesia:dirty_write(LA);
import(_LServer, riak, #last_activity{} = LA) ->
- ejabberd_riak:put(LA);
+ ejabberd_riak:put(LA, last_activity_schema());
import(_, _, _) ->
pass.