Packages
nova
0.7.0
0.15.1
0.14.3
0.14.1
0.13.7
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.24
0.9.23
0.9.22
0.9.21
0.9.20
0.9.19
0.9.18
0.9.17
0.9.16
0.9.15
0.9.11
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.4.4
0.4.3
0.4.2
0.4.1
0.2.2
0.1.0
0.0.1
0.0.0
Nova is a web application framework
Current section
Files
Jump to
Current section
Files
src/nova_http.erl
-module(nova_http).
-export([
%% Functions for modifying headers
set_headers/2,
add_header/3,
remove_header/2,
%% Functions for modifying body
set_body/2,
clear_body/1,
%% Functions for setting http-status
set_status/2,
%% Cookies
set_cookie/3,
set_cookie/4
]).
-spec set_headers(Headers :: map() | [{Key :: binary(), Value :: binary()}], NovaHttpState) ->
NovaHttpState when NovaHttpState :: nova_http_handler:nova_http_state().
set_headers(Map, NovaHttpState) when is_map(Map) ->
set_headers(maps:to_list(Map), NovaHttpState);
set_headers([], NovaHttpState) -> NovaHttpState;
set_headers([{Key, Value}|Tl], NovaHttpState = #{req := Req}) ->
Req0 = cowboy_req:set_resp_header(Key, Value, Req),
set_headers(Tl, NovaHttpState#{req => Req0}).
-spec add_header(Key :: binary(), Value :: binary(), NovaHttpState) ->
NovaHttpState when NovaHttpState :: nova_http_handler:nova_http_state().
add_header(Key, Value, NovaHttpState) when is_binary(Key) andalso is_binary(Value)->
set_headers([{Key, Value}], NovaHttpState).
-spec remove_header(Key :: binary(), NovaHttpState) -> NovaHttpState when
NovaHttpState :: nova_http_handler:nova_http_state().
remove_header(Key, NovaHttpState = #{req := Req}) ->
Req0 = cowboy_req:delete_resp_header(Key, Req),
NovaHttpState#{req => Req0}.
-spec set_body(Body :: cowboy_req:resp_body(), NovaHttpState) ->
NovaHttpState when NovaHttpState :: nova_http_handler:nova_http_state().
set_body(Body, NovaHttpState = #{req := Req}) ->
Req0 = cowboy_req:set_resp_body(Body, Req),
NovaHttpState#{req => Req0}.
-spec clear_body(NovaHttpState) -> NovaHttpState when
NovaHttpState :: nova_http_handler:nova_http_state().
clear_body(NovaHttpState) ->
set_body(<<"">>, NovaHttpState).
-spec set_status(StatusCode :: integer(), NovaHttpState) -> NovaHttpState when
NovaHttpState :: nova_http_handler:nova_http_state().
set_status(StatusCode, NovaHttpState) ->
NovaHttpState#{resp_status => StatusCode}.
-spec set_cookie(Key :: binary(), Value :: iodata(), NovaHttpState) ->
NovaHttpState when NovaHttpState :: nova_http_handler:nova_http_state().
set_cookie(Key, Value, NovaHttpState) ->
set_cookie(Key, Value, #{}, NovaHttpState).
-spec set_cookie(Key :: binary(), Value :: iodata(), Options :: cow_cookie:cookie_opts(), NovaHttpState) ->
NovaHttpState when NovaHttpState :: nova_http_handler:nova_http_state().
set_cookie(Key, Value, Options, NovaHttpState = #{req := Req}) ->
Req0 = cowboy_req:set_resp_cookie(Key, Value, Req, Options),
NovaHttpState#{req => Req0}.