From 9fe71aa326782f9dc1dc04914cd57e3b12d48af7 Mon Sep 17 00:00:00 2001 From: John Christopher Anderson Date: Sun, 10 May 2009 19:20:23 +0000 Subject: refactor JSON body error handling, also consolidate update_docs JSON response generation. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@773387 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_httpd.erl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/couchdb/couch_httpd.erl') diff --git a/src/couchdb/couch_httpd.erl b/src/couchdb/couch_httpd.erl index 5775e3a7..7a803c85 100644 --- a/src/couchdb/couch_httpd.erl +++ b/src/couchdb/couch_httpd.erl @@ -17,7 +17,7 @@ -export([header_value/2,header_value/3,qs_value/2,qs_value/3,qs/1,path/1,absolute_uri/2]). -export([verify_is_server_admin/1,unquote/1,quote/1,recv/2,recv_chunked/4,error_info/1]). --export([parse_form/1,json_body/1,body/1,doc_etag/1, make_etag/1, etag_respond/3]). +-export([parse_form/1,json_body/1,json_body_obj/1,body/1,doc_etag/1, make_etag/1, etag_respond/3]). -export([primary_header_value/2,partition/1,serve_file/3]). -export([start_chunked_response/3,send_chunk/2]). -export([start_json_response/2, start_json_response/3, end_json_response/1]). @@ -299,6 +299,14 @@ body(#httpd{mochi_req=MochiReq}) -> json_body(Httpd) -> ?JSON_DECODE(body(Httpd)). +json_body_obj(Httpd) -> + case json_body(Httpd) of + {Props} -> {Props}; + _Else -> + throw({bad_request, "Request body must be a JSON object"}) + end. + + doc_etag(#doc{revs={Start, [DiskRev|_]}}) -> "\"" ++ ?b2l(couch_doc:rev_to_str({Start, DiskRev})) ++ "\"". -- cgit v1.2.3