Return-Path: Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: (qmail 77054 invoked from network); 3 Nov 2009 14:22:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Nov 2009 14:22:44 -0000 Received: (qmail 6924 invoked by uid 500); 3 Nov 2009 14:22:43 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 6860 invoked by uid 500); 3 Nov 2009 14:22:43 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 6851 invoked by uid 99); 3 Nov 2009 14:22:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Nov 2009 14:22:43 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Nov 2009 14:22:40 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 0437A2388962; Tue, 3 Nov 2009 14:22:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r832427 - /couchdb/trunk/src/couchdb/couch_httpd_db.erl Date: Tue, 03 Nov 2009 14:22:19 -0000 To: commits@couchdb.apache.org From: jan@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091103142220.0437A2388962@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jan Date: Tue Nov 3 14:22:19 2009 New Revision: 832427 URL: http://svn.apache.org/viewvc?rev=832427&view=rev Log: Allow updating a doc along with an attachment when posted from an HTML form. Patch by Robert Newson. Closes COUCHDB-436. We still need tests for the entire form-upload function. Modified: couchdb/trunk/src/couchdb/couch_httpd_db.erl Modified: couchdb/trunk/src/couchdb/couch_httpd_db.erl URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_db.erl?rev=832427&r1=832426&r2=832427&view=diff ============================================================================== --- couchdb/trunk/src/couchdb/couch_httpd_db.erl (original) +++ couchdb/trunk/src/couchdb/couch_httpd_db.erl Tue Nov 3 14:22:19 2009 @@ -708,9 +708,14 @@ throw({bad_ctype, <<"Invalid Content-Type header for form upload">>}) end, Form = couch_httpd:parse_form(Req), - Rev = couch_doc:parse_rev(list_to_binary(proplists:get_value("_rev", Form))), - {ok, [{ok, Doc}]} = couch_db:open_doc_revs(Db, DocId, [Rev], []), - + case proplists:is_defined("_doc", Form) of + true -> + Json = ?JSON_DECODE(proplists:get_value("_doc", Form)), + Doc = couch_doc_from_req(Req, DocId, Json); + false -> + Rev = couch_doc:parse_rev(list_to_binary(proplists:get_value("_rev", Form))), + {ok, [{ok, Doc}]} = couch_db:open_doc_revs(Db, DocId, [Rev], []) + end, UpdatedAtts = [ #att{name=validate_attachment_name(Name), type=list_to_binary(ContentType),