diff options
author | Garren Smith <garren.smith@gmail.com> | 2018-08-30 11:34:20 +0200 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2018-09-05 11:51:31 +0100 |
commit | 231b33362c3976ade0a0711aa68ca02e81c35dcb (patch) | |
tree | 6697285970dbd5cfdd59552dbdadcde347b7a503 | |
parent | c52379ced4d7da2a3c1da094d38d3887e0a49a40 (diff) | |
download | couchdb-231b33362c3976ade0a0711aa68ca02e81c35dcb.tar.gz |
add POST support for keys for views
-rw-r--r-- | src/chttpd/src/chttpd_view.erl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/chttpd/src/chttpd_view.erl b/src/chttpd/src/chttpd_view.erl index c658a0456..25f240931 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), |