aboutsummaryrefslogtreecommitdiff
path: root/aoc2023/build/packages/gleam_http/src/gleam@http@request.erl
diff options
context:
space:
mode:
Diffstat (limited to 'aoc2023/build/packages/gleam_http/src/gleam@http@request.erl')
-rw-r--r--aoc2023/build/packages/gleam_http/src/gleam@http@request.erl202
1 files changed, 0 insertions, 202 deletions
diff --git a/aoc2023/build/packages/gleam_http/src/gleam@http@request.erl b/aoc2023/build/packages/gleam_http/src/gleam@http@request.erl
deleted file mode 100644
index 630788d..0000000
--- a/aoc2023/build/packages/gleam_http/src/gleam@http@request.erl
+++ /dev/null
@@ -1,202 +0,0 @@
--module(gleam@http@request).
--compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]).
-
--export([to_uri/1, from_uri/1, get_header/2, set_header/3, prepend_header/3, set_body/2, map/2, path_segments/1, get_query/1, set_query/2, set_method/2, new/0, to/1, set_scheme/2, set_host/2, set_port/2, set_path/2, set_cookie/3, get_cookies/1]).
--export_type([request/1]).
-
--type request(FYJ) :: {request,
- gleam@http:method(),
- list({binary(), binary()}),
- FYJ,
- gleam@http:scheme(),
- binary(),
- gleam@option:option(integer()),
- binary(),
- gleam@option:option(binary())}.
-
--spec to_uri(request(any())) -> gleam@uri:uri().
-to_uri(Request) ->
- {uri,
- {some, gleam@http:scheme_to_string(erlang:element(5, Request))},
- none,
- {some, erlang:element(6, Request)},
- erlang:element(7, Request),
- erlang:element(8, Request),
- erlang:element(9, Request),
- none}.
-
--spec from_uri(gleam@uri:uri()) -> {ok, request(binary())} | {error, nil}.
-from_uri(Uri) ->
- gleam@result:then(
- begin
- _pipe = erlang:element(2, Uri),
- _pipe@1 = gleam@option:unwrap(_pipe, <<""/utf8>>),
- gleam@http:scheme_from_string(_pipe@1)
- end,
- fun(Scheme) ->
- gleam@result:then(
- begin
- _pipe@2 = erlang:element(4, Uri),
- gleam@option:to_result(_pipe@2, nil)
- end,
- fun(Host) ->
- Req = {request,
- get,
- [],
- <<""/utf8>>,
- Scheme,
- Host,
- erlang:element(5, Uri),
- erlang:element(6, Uri),
- erlang:element(7, Uri)},
- {ok, Req}
- end
- )
- end
- ).
-
--spec get_header(request(any()), binary()) -> {ok, binary()} | {error, nil}.
-get_header(Request, Key) ->
- gleam@list:key_find(erlang:element(3, Request), gleam@string:lowercase(Key)).
-
--spec set_header(request(FYT), binary(), binary()) -> request(FYT).
-set_header(Request, Key, Value) ->
- Headers = gleam@list:key_set(
- erlang:element(3, Request),
- gleam@string:lowercase(Key),
- Value
- ),
- erlang:setelement(3, Request, Headers).
-
--spec prepend_header(request(FYW), binary(), binary()) -> request(FYW).
-prepend_header(Request, Key, Value) ->
- Headers = [{gleam@string:lowercase(Key), Value} |
- erlang:element(3, Request)],
- erlang:setelement(3, Request, Headers).
-
--spec set_body(request(any()), FZB) -> request(FZB).
-set_body(Req, Body) ->
- {request, Method, Headers, _, Scheme, Host, Port, Path, Query} = Req,
- {request, Method, Headers, Body, Scheme, Host, Port, Path, Query}.
-
--spec map(request(FZD), fun((FZD) -> FZF)) -> request(FZF).
-map(Request, Transform) ->
- _pipe = erlang:element(4, Request),
- _pipe@1 = Transform(_pipe),
- set_body(Request, _pipe@1).
-
--spec path_segments(request(any())) -> list(binary()).
-path_segments(Request) ->
- _pipe = erlang:element(8, Request),
- gleam@uri:path_segments(_pipe).
-
--spec get_query(request(any())) -> {ok, list({binary(), binary()})} |
- {error, nil}.
-get_query(Request) ->
- case erlang:element(9, Request) of
- {some, Query_string} ->
- gleam@uri:parse_query(Query_string);
-
- none ->
- {ok, []}
- end.
-
--spec set_query(request(FZP), list({binary(), binary()})) -> request(FZP).
-set_query(Req, Query) ->
- Pair = fun(T) ->
- gleam@string_builder:from_strings(
- [erlang:element(1, T), <<"="/utf8>>, erlang:element(2, T)]
- )
- end,
- Query@1 = begin
- _pipe = Query,
- _pipe@1 = gleam@list:map(_pipe, Pair),
- _pipe@2 = gleam@list:intersperse(
- _pipe@1,
- gleam@string_builder:from_string(<<"&"/utf8>>)
- ),
- _pipe@3 = gleam@string_builder:concat(_pipe@2),
- _pipe@4 = gleam@string_builder:to_string(_pipe@3),
- {some, _pipe@4}
- end,
- erlang:setelement(9, Req, Query@1).
-
--spec set_method(request(FZT), gleam@http:method()) -> request(FZT).
-set_method(Req, Method) ->
- erlang:setelement(2, Req, Method).
-
--spec new() -> request(binary()).
-new() ->
- {request,
- get,
- [],
- <<""/utf8>>,
- https,
- <<"localhost"/utf8>>,
- none,
- <<""/utf8>>,
- none}.
-
--spec to(binary()) -> {ok, request(binary())} | {error, nil}.
-to(Url) ->
- _pipe = Url,
- _pipe@1 = gleam@uri:parse(_pipe),
- gleam@result:then(_pipe@1, fun from_uri/1).
-
--spec set_scheme(request(GAA), gleam@http:scheme()) -> request(GAA).
-set_scheme(Req, Scheme) ->
- erlang:setelement(5, Req, Scheme).
-
--spec set_host(request(GAD), binary()) -> request(GAD).
-set_host(Req, Host) ->
- erlang:setelement(6, Req, Host).
-
--spec set_port(request(GAG), integer()) -> request(GAG).
-set_port(Req, Port) ->
- erlang:setelement(7, Req, {some, Port}).
-
--spec set_path(request(GAJ), binary()) -> request(GAJ).
-set_path(Req, Path) ->
- erlang:setelement(8, Req, Path).
-
--spec set_cookie(request(GAM), binary(), binary()) -> request(GAM).
-set_cookie(Req, Name, Value) ->
- New_cookie_string = gleam@string:join([Name, Value], <<"="/utf8>>),
- {Cookies_string@2, Headers@1} = case gleam@list:key_pop(
- erlang:element(3, Req),
- <<"cookie"/utf8>>
- ) of
- {ok, {Cookies_string, Headers}} ->
- Cookies_string@1 = gleam@string:join(
- [Cookies_string, New_cookie_string],
- <<"; "/utf8>>
- ),
- {Cookies_string@1, Headers};
-
- {error, nil} ->
- {New_cookie_string, erlang:element(3, Req)}
- end,
- erlang:setelement(
- 3,
- Req,
- [{<<"cookie"/utf8>>, Cookies_string@2} | Headers@1]
- ).
-
--spec get_cookies(request(any())) -> list({binary(), binary()}).
-get_cookies(Req) ->
- {request, _, Headers, _, _, _, _, _, _} = Req,
- _pipe = Headers,
- _pipe@1 = gleam@list:filter_map(
- _pipe,
- fun(Header) ->
- {Name, Value} = Header,
- case Name of
- <<"cookie"/utf8>> ->
- {ok, gleam@http@cookie:parse(Value)};
-
- _ ->
- {error, nil}
- end
- end
- ),
- gleam@list:flatten(_pipe@1).