diff options
author | Magnus Ahltorp <map@kth.se> | 2015-09-29 10:30:28 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2015-11-11 13:32:37 +0100 |
commit | de81352a53bc78b3c84143d77615662717b9d157 (patch) | |
tree | 04b599a1ca9e5fb2cda7eb0ab20a8cb054db77cb /src/frontend.erl | |
parent | c7094dd2108a9583f7704c156ae34264edf26090 (diff) |
Make it possible to send several entries at once with merge/sendentry
Diffstat (limited to 'src/frontend.erl')
-rw-r--r-- | src/frontend.erl | 12 |
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; |