Current section

Files

Jump to
glitch src glitch@extended@request_ext.erl
Raw

src/glitch@extended@request_ext.erl

-module(glitch@extended@request_ext).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([set_headers/2, merge_headers/3, set_header/2, set_query_string/2]).
-spec set_headers(gleam@http@request:request(RHQ), list({binary(), binary()})) -> gleam@http@request:request(RHQ).
set_headers(Request, Headers) ->
New_headers = gleam@list:fold(
Headers,
erlang:element(3, Request),
fun(Acc, Header) ->
gleam@list:key_set(
Acc,
gleam@string:lowercase(erlang:element(1, Header)),
erlang:element(2, Header)
)
end
),
erlang:setelement(3, Request, New_headers).
-spec merge_headers(
gleam@http@request:request(RHL),
list({binary(), binary()}),
list({binary(), binary()})
) -> gleam@http@request:request(RHL).
merge_headers(Request, Base, Overrides) ->
_pipe = Request,
_pipe@1 = set_headers(_pipe, Base),
set_headers(_pipe@1, Overrides).
-spec set_header(gleam@http@request:request(RHU), {binary(), binary()}) -> gleam@http@request:request(RHU).
set_header(Request, Header) ->
Key = gleam@string:lowercase(erlang:element(1, Header)),
Value = erlang:element(2, Header),
gleam@http@request:set_header(Request, Key, Value).
-spec set_query_string(
gleam@http@request:request(RHX),
gleam@option:option(binary())
) -> gleam@http@request:request(RHX).
set_query_string(Request, Query) ->
erlang:setelement(9, Request, Query).