From f316b47d13bfd67834ee6335bb5b8bb495c6c6f8 Mon Sep 17 00:00:00 2001 From: Seletskiy Stanislav Date: Fri, 26 Apr 2013 18:34:01 +0700 Subject: Add default CTP: "text/html" maps to `to_html` --- src/cowboy_rest.erl | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src') 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} -> -- cgit v1.2.3 From 72a9ccacdd5fead8f9c45a8a38327382be8534d8 Mon Sep 17 00:00:00 2001 From: Seletskiy Stanislav Date: Fri, 26 Apr 2013 18:34:10 +0700 Subject: Fix indenting issues in `cowboy_rest.erl` --- src/cowboy_rest.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/cowboy_rest.erl b/src/cowboy_rest.erl index 9757b85..4ba2b47 100644 --- a/src/cowboy_rest.erl +++ b/src/cowboy_rest.erl @@ -237,7 +237,7 @@ content_types_provided(Req, State) -> {[], Req2, HandlerState} -> not_acceptable(Req2, State#state{handler_state=HandlerState}); {CTP, Req2, HandlerState} -> - CTP2 = [normalize_content_types(P) || P <- CTP], + CTP2 = [normalize_content_types(P) || P <- CTP], State2 = State#state{ handler_state=HandlerState, content_types_p=CTP2}, case cowboy_req:parse_header(<<"accept">>, Req2) of @@ -256,7 +256,7 @@ content_types_provided(Req, State) -> normalize_content_types({ContentType, Callback}) when is_binary(ContentType) -> - {cowboy_http:content_type(ContentType), Callback}; + {cowboy_http:content_type(ContentType), Callback}; normalize_content_types(Normalized) -> Normalized. @@ -791,7 +791,7 @@ accept_resource(Req, State) -> {halt, Req2, HandlerState} -> terminate(Req2, State#state{handler_state=HandlerState}); {CTA, Req2, HandlerState} -> - CTA2 = [normalize_content_types(P) || P <- CTA], + CTA2 = [normalize_content_types(P) || P <- CTA], State2 = State#state{handler_state=HandlerState}, case cowboy_req:parse_header(<<"content-type">>, Req2) of {ok, ContentType, Req3} -> -- cgit v1.2.3