aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_rest.erl
diff options
context:
space:
mode:
authorSeletskiy Stanislav <[email protected]>2013-04-26 18:34:01 +0700
committerSeletskiy Stanislav <[email protected]>2013-04-26 18:34:01 +0700
commitf316b47d13bfd67834ee6335bb5b8bb495c6c6f8 (patch)
tree25636747e4a785d86499d89ada336610d62fd155 /src/cowboy_rest.erl
parent97b8401c45ea24dca034db6a34cf02f0809034c3 (diff)
downloadcowboy-f316b47d13bfd67834ee6335bb5b8bb495c6c6f8.tar.gz
cowboy-f316b47d13bfd67834ee6335bb5b8bb495c6c6f8.tar.bz2
cowboy-f316b47d13bfd67834ee6335bb5b8bb495c6c6f8.zip
Add default CTP: "text/html" maps to `to_html`
Diffstat (limited to 'src/cowboy_rest.erl')
-rw-r--r--src/cowboy_rest.erl14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/cowboy_rest.erl b/src/cowboy_rest.erl
index c28b627..9757b85 100644
--- a/src/cowboy_rest.erl
+++ b/src/cowboy_rest.erl
@@ -219,7 +219,19 @@ options(Req, State) ->
content_types_provided(Req, State) ->
case call(Req, State, content_types_provided) of
no_call ->
- not_acceptable(Req, State);
+ State2 = State#state{
+ content_types_p=[{{<<"text">>, <<"html">>, '*'}, to_html}]},
+ case cowboy_req:parse_header(<<"accept">>, Req) of
+ {error, badarg} ->
+ respond(Req, State2, 400);
+ {ok, undefined, Req2} ->
+ languages_provided(
+ cowboy_req:set_meta(media_type, {<<"text">>, <<"html">>, []}, Req2),
+ State2#state{content_type_a={{<<"text">>, <<"html">>, []}, to_html}});
+ {ok, Accept, Req2} ->
+ Accept2 = prioritize_accept(Accept),
+ choose_media_type(Req2, State2, Accept2)
+ end;
{halt, Req2, HandlerState} ->
terminate(Req2, State#state{handler_state=HandlerState});
{[], Req2, HandlerState} ->