diff options
Diffstat (limited to 'src/couchdb/couch_rep_writer.erl')
-rw-r--r-- | src/couchdb/couch_rep_writer.erl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/couchdb/couch_rep_writer.erl b/src/couchdb/couch_rep_writer.erl index d88c3ee2..ffe9768f 100644 --- a/src/couchdb/couch_rep_writer.erl +++ b/src/couchdb/couch_rep_writer.erl @@ -46,12 +46,18 @@ writer_loop(Parent, Reader, Target) -> write_docs(#http_db{} = Db, Docs) -> JsonDocs = [couch_doc:to_json_obj(Doc, [revs,attachments]) || Doc <- Docs], - ErrorsJson = couch_rep_httpc:request(Db#http_db{ + Request = Db#http_db{ resource = "_bulk_docs", method = post, body = {[{new_edits, false}, {docs, JsonDocs}]}, headers = [{"x-couch-full-commit", "false"} | Db#http_db.headers] - }), + }, + ErrorsJson = case couch_rep_httpc:request(Request) of + {FailProps} -> + exit({target_error, proplists:get_value(<<"error">>, FailProps)}); + List when is_list(List) -> + List + end, ErrorsList = lists:map( fun({Props}) -> |