mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 20:30:23 +00:00

Instead it will always go through content_types_accepted and it is up to the resource code to do any creation and to return the created path if the method is POST and the client should be redirected to the created resource's location. This removes the meta value 'put_path' as it is not needed anymore. This fixes an issue with PATCH where content types were not normalized.
31 lines
835 B
Erlang
31 lines
835 B
Erlang
-module(rest_forbidden_resource).
|
|
-export([init/3, rest_init/2, allowed_methods/2, forbidden/2,
|
|
content_types_provided/2, content_types_accepted/2,
|
|
to_text/2, from_text/2]).
|
|
|
|
init(_Transport, _Req, _Opts) ->
|
|
{upgrade, protocol, cowboy_rest}.
|
|
|
|
rest_init(Req, [Forbidden]) ->
|
|
{ok, Req, Forbidden}.
|
|
|
|
allowed_methods(Req, State) ->
|
|
{[<<"GET">>, <<"HEAD">>, <<"POST">>], Req, State}.
|
|
|
|
forbidden(Req, State=true) ->
|
|
{true, Req, State};
|
|
forbidden(Req, State=false) ->
|
|
{false, Req, State}.
|
|
|
|
content_types_provided(Req, State) ->
|
|
{[{{<<"text">>, <<"plain">>, []}, to_text}], Req, State}.
|
|
|
|
content_types_accepted(Req, State) ->
|
|
{[{{<<"text">>, <<"plain">>, []}, from_text}], Req, State}.
|
|
|
|
to_text(Req, State) ->
|
|
{<<"This is REST!">>, Req, State}.
|
|
|
|
from_text(Req, State) ->
|
|
{Path, Req2} = cowboy_req:path(Req),
|
|
{Path, Req2, State}.
|