0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 12:40:25 +00:00
cowboy/test/rest_forbidden_resource.erl
Loïc Hoguin 5a171d0f80 Remove process_post, post_is_create, create_path, created_path callbacks
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.
2013-04-11 22:25:36 +02:00

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}.