summaryrefslogtreecommitdiff
path: root/src/frontend.erl
diff options
context:
space:
mode:
authorMagnus Ahltorp <map@kth.se>2015-09-29 10:30:28 +0200
committerLinus Nordberg <linus@nordu.net>2015-11-11 13:32:37 +0100
commitde81352a53bc78b3c84143d77615662717b9d157 (patch)
tree04b599a1ca9e5fb2cda7eb0ab20a8cb054db77cb /src/frontend.erl
parentc7094dd2108a9583f7704c156ae34264edf26090 (diff)
Make it possible to send several entries at once with merge/sendentry
Diffstat (limited to 'src/frontend.erl')
-rw-r--r--src/frontend.erl12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/frontend.erl b/src/frontend.erl
index 3dd178f..3b7c15b 100644
--- a/src/frontend.erl
+++ b/src/frontend.erl
@@ -15,7 +15,7 @@ request(post, "plop/v1/frontend/sendentry", Input) ->
LogEntry = base64:decode(proplists:get_value(<<"entry">>, PropList)),
TreeLeafHash = base64:decode(proplists:get_value(<<"treeleafhash">>, PropList)),
- ok = db:add(TreeLeafHash, LogEntry),
+ ok = db:add_entry_sync(TreeLeafHash, LogEntry),
success({[{result, <<"ok">>}]})
end;
@@ -83,11 +83,19 @@ request(post, "plop/v1/merge/sendentry", Input) ->
case (catch mochijson2:decode(Input)) of
{error, E} ->
html("sendentry: bad input:", E);
+ Entries when is_list(Entries) ->
+ lists:map(fun ({struct, PropList}) ->
+ LogEntry = base64:decode(proplists:get_value(<<"entry">>, PropList)),
+ TreeLeafHash = base64:decode(proplists:get_value(<<"treeleafhash">>, PropList)),
+ ok = db:add_entry_nosync(TreeLeafHash, LogEntry)
+ end, Entries),
+ ok = db:sync_entry_db(),
+ success({[{result, <<"ok">>}]});
{struct, PropList} ->
LogEntry = base64:decode(proplists:get_value(<<"entry">>, PropList)),
TreeLeafHash = base64:decode(proplists:get_value(<<"treeleafhash">>, PropList)),
- ok = db:add(TreeLeafHash, LogEntry),
+ ok = db:add_entry_sync(TreeLeafHash, LogEntry),
success({[{result, <<"ok">>}]})
end;