diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cowboy_rest.erl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cowboy_rest.erl b/src/cowboy_rest.erl index 862ebbf..30ed15d 100644 --- a/src/cowboy_rest.erl +++ b/src/cowboy_rest.erl @@ -801,8 +801,12 @@ process_content_type(Req, State=#state{method=Method, exists=Exists}, Fun) -> error_terminate(Req, State, Class, Reason, Fun) end. -%% If the resource is new and has been created at another location -%% we send a 201. Otherwise we continue as normal. +%% If PUT was used then the resource has been created at the current URL. +%% Otherwise, if a location header has been set then the resource has been +%% created at a new URL. If not, send a 200 or 204 as expected from a +%% POST or PATCH request. +maybe_created(Req, State=#state{method= <<"PUT">>}) -> + respond(Req, State, 201); maybe_created(Req, State) -> case cowboy_req:has_resp_header(<<"location">>, Req) of true -> respond(Req, State, 201); |