Author: jchris
Date: Mon Feb  9 00:57:26 2009
New Revision: 742217

URL: http://svn.apache.org/viewvc?rev=742217&view=rev
Log:
allow format query param to override accept headers for _list and _show

Modified:
    couchdb/trunk/share/server/main.js
    couchdb/trunk/src/couchdb/couch_httpd_view.erl

Modified: couchdb/trunk/share/server/main.js
URL: 
http://svn.apache.org/viewvc/couchdb/trunk/share/server/main.js?rev=742217&r1=742216&r2=742217&view=diff
==============================================================================
--- couchdb/trunk/share/server/main.js [utf-8] (original)
+++ couchdb/trunk/share/server/main.js [utf-8] Mon Feb  9 00:57:26 2009
@@ -142,7 +142,7 @@
 // this function provides a shortcut for managing responses by Accept header
 respondWith = function(req, responders) {
   var bestKey = null, accept = req.headers["Accept"];
-  if (accept) {
+  if (accept && !req.query.format) {
     var provides = [];
     for (key in responders) {
       if (mimesByKey[key]) {
@@ -151,6 +151,8 @@
     }
     var bestMime = Mimeparse.bestMatch(provides, accept);
     bestKey = keysByMime[bestMime];
+  } else {
+    bestKey = req.query.format;
   }
   var rFunc = responders[bestKey || responders.fallback || "html"];
   if (rFunc) {      

Modified: couchdb/trunk/src/couchdb/couch_httpd_view.erl
URL: 
http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_view.erl?rev=742217&r1=742216&r2=742217&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_httpd_view.erl (original)
+++ couchdb/trunk/src/couchdb/couch_httpd_view.erl Mon Feb  9 00:57:26 2009
@@ -328,6 +328,9 @@
                 Msg1 = "Bad URL query value for 'include_docs' expected 
\"true\" or \"false\".",
                 throw({query_parse_error, Msg1})
             end;
+        {"format", _} ->
+            % we just ignore format, so that JS can have it
+            Args;
         _ -> % unknown key
             Msg = lists:flatten(io_lib:format(
                 "Bad URL query key:~s", [Key])),


Reply via email to