You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2018/09/05 10:52:21 UTC
[couchdb] 08/11: add POST support for keys for views
This is an automated email from the ASF dual-hosted git repository.
rnewson pushed a commit to branch user-partitioned-dbs-6
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 231b33362c3976ade0a0711aa68ca02e81c35dcb
Author: Garren Smith <ga...@gmail.com>
AuthorDate: Thu Aug 30 11:34:20 2018 +0200
add POST support for keys for views
---
src/chttpd/src/chttpd_view.erl | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/src/chttpd/src/chttpd_view.erl b/src/chttpd/src/chttpd_view.erl
index c658a04..25f2409 100644
--- a/src/chttpd/src/chttpd_view.erl
+++ b/src/chttpd/src/chttpd_view.erl
@@ -105,6 +105,24 @@ handle_temp_view_req(Req, _Db) ->
chttpd:send_error(Req, 410, gone, Msg).
+handle_partition_view_req(#httpd{method='POST',
+ path_parts=[_, _, _, _, _, _, ViewName]} = Req, Db, DDoc, Partition) ->
+ chttpd:validate_ctype(Req, "application/json"),
+ Props = couch_httpd:json_body_obj(Req),
+ Keys = couch_mrview_util:get_view_keys(Props),
+ case Keys of
+ Keys when is_list(Keys) ->
+ couch_stats:increment_counter([couchdb, httpd, view_reads]),
+ Args0 = couch_mrview_http:parse_params(Req, Keys),
+ Args1 = couch_mrview_util:set_extra(Args0, partition, Partition),
+ design_doc_view_int(Req, Db, DDoc, ViewName, Args1);
+ _ ->
+ throw({
+ bad_request,
+ "POST body must contain `keys` field"
+ })
+ end;
+
handle_partition_view_req(#httpd{method='GET',
path_parts=[_, _, _, _, _, _, ViewName]} = Req, Db, DDoc, Partition) ->
Keys = chttpd:qs_json_value(Req, "keys", undefined),