-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.