diff options
author | Nick Vatamaniuc <vatamane@apache.org> | 2020-04-06 17:46:45 -0400 |
---|---|---|
committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2020-04-07 12:18:29 -0400 |
commit | 1be2363b4dae31ab67d6bafd3f5a2620f5d784eb (patch) | |
tree | df404c4a96cc69b2cbe679a2b4be6873ff10ee2b | |
parent | 2ba98a89cda88ccc9be2b4e4fb481086d1364e42 (diff) | |
download | couchdb-1be2363b4dae31ab67d6bafd3f5a2620f5d784eb.tar.gz |
Fix POST _all_docs/queries endpoint
Call couch_views module instead of the old fabric:query_view also needed to
call `view_cb(complete, ...)` when using keys similar to how `all_docs_view/4`
does it.
-rw-r--r-- | src/chttpd/src/chttpd_db.erl | 4 | ||||
-rw-r--r-- | src/chttpd/src/chttpd_view.erl | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/chttpd/src/chttpd_db.erl b/src/chttpd/src/chttpd_db.erl index deaca4855..16cfbd0df 100644 --- a/src/chttpd/src/chttpd_db.erl +++ b/src/chttpd/src/chttpd_db.erl @@ -831,7 +831,9 @@ multi_all_docs_view(Req, Db, OP, Queries) -> (#mrargs{keys = undefined} = Args, Acc0) -> send_all_docs(Db, Args, Acc0); (#mrargs{keys = Keys} = Args, Acc0) when is_list(Keys) -> - send_all_docs_keys(Db, Args, Acc0) + Acc1 = send_all_docs_keys(Db, Args, Acc0), + {ok, Acc2} = view_cb(complete, Acc1), + Acc2 end, VAcc0, ArgQueries), {ok, Resp1} = chttpd:send_delayed_chunk(VAcc1#vacc.resp, "\r\n]}"), chttpd:end_delayed_json_response(Resp1). diff --git a/src/chttpd/src/chttpd_view.erl b/src/chttpd/src/chttpd_view.erl index 84997e5a5..3ef9c2408 100644 --- a/src/chttpd/src/chttpd_view.erl +++ b/src/chttpd/src/chttpd_view.erl @@ -26,14 +26,13 @@ multi_query_view(Req, Db, DDoc, ViewName, Queries) -> QueryArg1 = couch_mrview_util:set_view_type(QueryArg, ViewName, Views), fabric_util:validate_args(Db, DDoc, QueryArg1) end, Queries), - Options = [{user_ctx, Req#httpd.user_ctx}], VAcc0 = #vacc{db=Db, req=Req, prepend="\r\n"}, FirstChunk = "{\"results\":[", {ok, Resp0} = chttpd:start_delayed_json_response(VAcc0#vacc.req, 200, [], FirstChunk), VAcc1 = VAcc0#vacc{resp=Resp0}, VAcc2 = lists:foldl(fun(Args, Acc0) -> - {ok, Acc1} = fabric:query_view(Db, Options, DDoc, ViewName, - fun view_cb/2, Acc0, Args), + Fun = fun view_cb/2, + {ok, Acc1} = couch_views:query(Db, DDoc, ViewName, Fun, Acc0, Args), Acc1 end, VAcc1, ArgQueries), {ok, Resp1} = chttpd:send_delayed_chunk(VAcc2#vacc.resp, "\r\n]}"), |