Current section
Files
Jump to
Current section
Files
src/gleam@http@service.erl
-module(gleam@http@service).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleam/http/service.gleam").
-export([map_response_body/2, prepend_response_header/3, method_override/1]).
-file("src/gleam/http/service.gleam", 17).
-spec map_response_body(
fun((EVR) -> gleam@http@response:response(EVS)),
fun((EVS) -> EVU)
) -> fun((EVR) -> gleam@http@response:response(EVU)).
map_response_body(Service, Mapper) ->
fun(Req) -> _pipe = Req,
_pipe@1 = Service(_pipe),
gleam@http@response:map(_pipe@1, Mapper) end.
-file("src/gleam/http/service.gleam", 29).
-spec prepend_response_header(
fun((EVW) -> gleam@http@response:response(EVX)),
binary(),
binary()
) -> fun((EVW) -> gleam@http@response:response(EVX)).
prepend_response_header(Service, Key, Value) ->
fun(Req) -> _pipe = Req,
_pipe@1 = Service(_pipe),
gleam@http@response:prepend_header(_pipe@1, Key, Value) end.
-file("src/gleam/http/service.gleam", 41).
-spec ensure_post(gleam@http@request:request(EWA)) -> {ok,
gleam@http@request:request(EWA)} |
{error, nil}.
ensure_post(Req) ->
case erlang:element(2, Req) of
post ->
{ok, Req};
_ ->
{error, nil}
end.
-file("src/gleam/http/service.gleam", 48).
-spec get_override_method(gleam@http@request:request(any())) -> {ok,
gleam@http:method()} |
{error, nil}.
get_override_method(Request) ->
case gleam@http@request:get_query(Request) of
{ok, X} ->
begin
Result = gleam@list:key_find(X, <<"_method"/utf8>>),
case Result of
{ok, X@1} ->
case gleam@http:parse_method(X@1) of
{ok, X@2} ->
Method = X@2,
case Method of
put ->
{ok, Method};
patch ->
{ok, Method};
delete ->
{ok, Method};
_ ->
{error, nil}
end;
{error, E} ->
{error, E}
end;
{error, E@1} ->
{error, E@1}
end
end;
{error, E@2} ->
{error, E@2}
end.
-file("src/gleam/http/service.gleam", 59).
-spec method_override(fun((gleam@http@request:request(EWJ)) -> EWL)) -> fun((gleam@http@request:request(EWJ)) -> EWL).
method_override(Service) ->
fun(Request) -> _pipe = Request,
_pipe@1 = ensure_post(_pipe),
_pipe@2 = gleam@result:'try'(_pipe@1, fun get_override_method/1),
_pipe@3 = gleam@result:map(
_pipe@2,
fun(_capture) ->
gleam@http@request:set_method(Request, _capture)
end
),
_pipe@4 = gleam@result:unwrap(_pipe@3, Request),
Service(_pipe@4) end.