From 3f4e79d42f7a81fa3f8e790630f71570287c2be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20L=C3=B6vdahl?= Date: Sun, 13 Nov 2016 15:39:40 +0100 Subject: Add functions for getting and setting response headers --- src/cowboy_req.erl | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/cowboy_req.erl') diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index ac93875..c2a85e5 100644 --- a/src/cowboy_req.erl +++ b/src/cowboy_req.erl @@ -59,8 +59,11 @@ %% Response. -export([set_resp_cookie/3]). -export([set_resp_cookie/4]). +-export([resp_header/2]). +-export([resp_header/3]). +-export([resp_headers/1]). -export([set_resp_header/3]). -%% @todo set_resp_headers/2 +-export([set_resp_headers/2]). -export([has_resp_header/2]). %% @todo resp_header -export([delete_resp_header/2]). @@ -570,6 +573,31 @@ set_resp_header(Name, Value, Req=#{resp_headers := RespHeaders}) -> set_resp_header(Name,Value, Req) -> Req#{resp_headers => #{Name => Value}}. +-spec set_resp_headers(cowboy:http_headers(), Req) + -> Req when Req::req(). +set_resp_headers(Headers, Req=#{resp_headers := RespHeaders}) -> + Req#{resp_headers => maps:merge(RespHeaders, Headers)}; +set_resp_headers(Headers, Req) -> + Req#{resp_headers => Headers}. + + +-spec resp_header(binary(), req()) -> binary() | undefined. +resp_header(Name, Req) -> + resp_header(Name, Req, undefined). + +-spec resp_header(binary(), req(), Default) + -> binary() | Default when Default::any(). +resp_header(Name, #{resp_headers := Headers}, Default) -> + maps:get(Name, Headers, Default); +resp_header(_, #{}, Default) -> + Default. + +-spec resp_headers(req()) -> cowboy:http_headers(). +resp_headers(#{resp_headers := RespHeaders}) -> + RespHeaders; +resp_headers(#{}) -> + #{}. + -spec set_resp_body(resp_body(), Req) -> Req when Req::req(). set_resp_body(Body, Req) -> Req#{resp_body => Body}. -- cgit v1.2.3