diff options
author | John Christopher Anderson <jchris@apache.org> | 2009-03-04 04:45:10 +0000 |
---|---|---|
committer | John Christopher Anderson <jchris@apache.org> | 2009-03-04 04:45:10 +0000 |
commit | 29ae4670d62db80300483f2362143eb478cf2b56 (patch) | |
tree | a62d41f615bf45edd9b7a87233a11d6e715b4ca2 /src/couchdb | |
parent | e7eef7dc88643d29913a0b3d053e2e366017a621 (diff) |
refactor show 404 handling doc-loading special case out of couch_httpd_db.erl
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@749902 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/couchdb')
-rw-r--r-- | src/couchdb/couch_httpd_db.erl | 17 | ||||
-rw-r--r-- | src/couchdb/couch_httpd_show.erl | 6 |
2 files changed, 10 insertions, 13 deletions
diff --git a/src/couchdb/couch_httpd_db.erl b/src/couchdb/couch_httpd_db.erl index 1bd853f3..524b52b4 100644 --- a/src/couchdb/couch_httpd_db.erl +++ b/src/couchdb/couch_httpd_db.erl @@ -13,7 +13,7 @@ -module(couch_httpd_db). -include("couch_db.hrl"). --export([handle_request/1, db_req/2, couch_doc_open/4, couch_doc_open/5]). +-export([handle_request/1, db_req/2, couch_doc_open/4]). -import(couch_httpd, [send_json/2,send_json/3,send_json/4,send_method_not_allowed/2, @@ -538,27 +538,20 @@ db_doc_req(Req, _Db, _DocId) -> % couch_doc_open(Db, DocId, [], []). couch_doc_open(Db, DocId, Rev, Options) -> - couch_doc_open(Db, DocId, Rev, Options, true). - -couch_doc_open(Db, DocId, Rev, Options, Throw) -> case Rev of "" -> % open most recent rev case couch_db:open_doc(Db, DocId, Options) of {ok, Doc} -> Doc; - Error when Throw -> - throw(Error); - _ -> - nil + Error -> + throw(Error) end; _ -> % open a specific rev (deletions come back as stubs) case couch_db:open_doc_revs(Db, DocId, [Rev], Options) of {ok, [{ok, Doc}]} -> Doc; - {ok, [Else]} when Throw -> - throw(Else); - {ok, _} -> - nil + {ok, [Else]} -> + throw(Else) end end. diff --git a/src/couchdb/couch_httpd_show.erl b/src/couchdb/couch_httpd_show.erl index 475f9ae2..398ed4c9 100644 --- a/src/couchdb/couch_httpd_show.erl +++ b/src/couchdb/couch_httpd_show.erl @@ -30,7 +30,11 @@ handle_doc_show_req(#httpd{ #doc{body={Props}} = couch_httpd_db:couch_doc_open(Db, DesignId, [], []), Lang = proplists:get_value(<<"language">>, Props, <<"javascript">>), ShowSrc = get_nested_json_value({Props}, [<<"shows">>, ShowName]), - Doc = couch_httpd_db:couch_doc_open(Db, DocId, [], [], false), + Doc = try couch_httpd_db:couch_doc_open(Db, DocId, [], []) of + FoundDoc -> FoundDoc + catch + _ -> nil + end, send_doc_show_response(Lang, ShowSrc, DocId, Doc, Req, Db); handle_doc_show_req(#httpd{ |