You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by kx...@apache.org on 2015/10/17 23:48:37 UTC
couchdb-mango git commit: Correctly handle unsupported HTTP methods
per resource
Repository: couchdb-mango
Updated Branches:
refs/heads/master 0cc0fb8d2 -> a297e2e9e
Correctly handle unsupported HTTP methods per resource
Project: http://git-wip-us.apache.org/repos/asf/couchdb-mango/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-mango/commit/a297e2e9
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-mango/tree/a297e2e9
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-mango/diff/a297e2e9
Branch: refs/heads/master
Commit: a297e2e9e2c006381f982e73a08fff29c4f8db8f
Parents: 0cc0fb8
Author: Alexander Shorin <kx...@apache.org>
Authored: Mon Oct 12 19:22:23 2015 +0300
Committer: Alexander Shorin <kx...@apache.org>
Committed: Sun Oct 18 00:46:24 2015 +0300
----------------------------------------------------------------------
src/mango_httpd.erl | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-mango/blob/a297e2e9/src/mango_httpd.erl
----------------------------------------------------------------------
diff --git a/src/mango_httpd.erl b/src/mango_httpd.erl
index 9e56be9..ef7135c 100644
--- a/src/mango_httpd.erl
+++ b/src/mango_httpd.erl
@@ -107,6 +107,9 @@ handle_index_req(#httpd{method='POST', path_parts=[_, _]}=Req, Db) ->
end,
chttpd:send_json(Req, {[{result, Status}, {id, Id}, {name, Name}]});
+handle_index_req(#httpd{path_parts=[_, _]}=Req, _Db) ->
+ chttpd:send_method_not_allowed(Req, "GET,POST");
+
%% Essentially we just iterate through the list of ddoc ids passed in and
%% delete one by one. If an error occurs, all previous documents will be
%% deleted, but an error will be thrown for the current ddoc id.
@@ -130,6 +133,10 @@ handle_index_req(#httpd{method='POST', path_parts=[_, <<"_index">>,
end, {[], []}, DDocs),
chttpd:send_json(Req, {[{<<"success">>, Success}, {<<"fail">>, Fail}]});
+handle_index_req(#httpd{path_parts=[_, <<"_index">>,
+ <<"_bulk_delete">>]}=Req, _Db) ->
+ chttpd:send_method_not_allowed(Req, "POST");
+
handle_index_req(#httpd{method='DELETE',
path_parts=[A, B, <<"_design">>, DDocId0, Type, Name]}=Req, Db) ->
PathParts = [A, B, <<"_design/", DDocId0/binary>>, Type, Name],
@@ -155,8 +162,8 @@ handle_index_req(#httpd{method='DELETE',
?MANGO_ERROR({error_saving_ddoc, Error})
end;
-handle_index_req(Req, _Db) ->
- chttpd:send_method_not_allowed(Req, "GET,POST,DELETE").
+handle_index_req(#httpd{path_parts=[_, _, _DDocId0, _Type, _Name]}=Req, _Db) ->
+ chttpd:send_method_not_allowed(Req, "DELETE").
handle_explain_req(#httpd{method='POST'}=Req, Db) ->