summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarren Smith <garren.smith@gmail.com>2018-08-30 11:34:20 +0200
committerGarren Smith <garren.smith@gmail.com>2018-08-30 11:34:20 +0200
commita3a105ccbec3332edc6955579e6a1e14b5c4c427 (patch)
tree24246df292b8544e1deae06f81f1aa488da61717
parentec8b2037668e6d91a4a07b76b42afc4dbdb161d7 (diff)
downloadcouchdb-partition-add-post.tar.gz
add POST support for keys for viewspartition-add-post
-rw-r--r--src/chttpd/src/chttpd_view.erl19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/chttpd/src/chttpd_view.erl b/src/chttpd/src/chttpd_view.erl
index 627663cbc..557f2b68e 100644
--- a/src/chttpd/src/chttpd_view.erl
+++ b/src/chttpd/src/chttpd_view.erl
@@ -106,6 +106,25 @@ 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]),
+ Args = couch_mrview_http:parse_params(Req, Keys),
+ Args1 = couch_mrview_util:set_extra(Args, partition, Partition),
+ Args2 = couch_mrview_util:set_extra(Args1, partitioned, true),
+ design_doc_view_int(Req, Db, DDoc, ViewName, Args2);
+ _ ->
+ 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),