-module(touch_grass@http). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/touch_grass/http.gleam"). -export([method_to_gleam/1, method_to_eyg/1, scheme_to_gleam/1, scheme_to_eyg/1, headers_to_gleam/1, headers_to_eyg/1, request_to_gleam/1, request_to_eyg/1, response_to_gleam/1, response_to_eyg/1, operation_to_gleam/1]). -file("src/touch_grass/http.gleam", 12). -spec method_to_gleam(eyg@interpreter@value:value(JVA, JVB)) -> {ok, gleam@http:method()} | {error, eyg@interpreter@break:reason(JVA, JVB)}. method_to_gleam(Value) -> eyg@interpreter@cast:as_varient( Value, [{<<"CONNECT"/utf8>>, fun(_capture) -> eyg@interpreter@cast:as_unit(_capture, connect) end}, {<<"DELETE"/utf8>>, fun(_capture@1) -> eyg@interpreter@cast:as_unit(_capture@1, delete) end}, {<<"GET"/utf8>>, fun(_capture@2) -> eyg@interpreter@cast:as_unit(_capture@2, get) end}, {<<"HEAD"/utf8>>, fun(_capture@3) -> eyg@interpreter@cast:as_unit(_capture@3, head) end}, {<<"OPTIONS"/utf8>>, fun(_capture@4) -> eyg@interpreter@cast:as_unit(_capture@4, options) end}, {<<"PATCH"/utf8>>, fun(_capture@5) -> eyg@interpreter@cast:as_unit(_capture@5, patch) end}, {<<"POST"/utf8>>, fun(_capture@6) -> eyg@interpreter@cast:as_unit(_capture@6, post) end}, {<<"PUT"/utf8>>, fun(_capture@7) -> eyg@interpreter@cast:as_unit(_capture@7, put) end}, {<<"TRACE"/utf8>>, fun(_capture@8) -> eyg@interpreter@cast:as_unit(_capture@8, trace) end}, {<<"OTHER"/utf8>>, begin _pipe = fun eyg@interpreter@cast:as_string/1, eyg@interpreter@cast:map( _pipe, fun(Field@0) -> {other, Field@0} end ) end}] ). -file("src/touch_grass/http.gleam", 29). -spec method_to_eyg(gleam@http:method()) -> eyg@interpreter@value:value(any(), any()). method_to_eyg(Method) -> case Method of get -> {tagged, <<"GET"/utf8>>, eyg@interpreter@value:unit()}; post -> {tagged, <<"POST"/utf8>>, eyg@interpreter@value:unit()}; head -> {tagged, <<"HEAD"/utf8>>, eyg@interpreter@value:unit()}; put -> {tagged, <<"PUT"/utf8>>, eyg@interpreter@value:unit()}; delete -> {tagged, <<"DELETE"/utf8>>, eyg@interpreter@value:unit()}; trace -> {tagged, <<"TRACE"/utf8>>, eyg@interpreter@value:unit()}; connect -> {tagged, <<"CONNECT"/utf8>>, eyg@interpreter@value:unit()}; options -> {tagged, <<"OPTIONS"/utf8>>, eyg@interpreter@value:unit()}; patch -> {tagged, <<"PATCH"/utf8>>, eyg@interpreter@value:unit()}; {other, Other} -> {tagged, <<"OTHER"/utf8>>, {string, Other}} end. -file("src/touch_grass/http.gleam", 44). -spec scheme_to_gleam(eyg@interpreter@value:value(JVM, JVN)) -> {ok, gleam@http:scheme()} | {error, eyg@interpreter@break:reason(JVM, JVN)}. scheme_to_gleam(Value) -> eyg@interpreter@cast:as_varient( Value, [{<<"HTTP"/utf8>>, fun(_capture) -> eyg@interpreter@cast:as_unit(_capture, http) end}, {<<"HTTPS"/utf8>>, fun(_capture@1) -> eyg@interpreter@cast:as_unit(_capture@1, https) end}] ). -file("src/touch_grass/http.gleam", 53). -spec scheme_to_eyg(gleam@http:scheme()) -> eyg@interpreter@value:value(any(), any()). scheme_to_eyg(Scheme) -> case Scheme of http -> {tagged, <<"HTTP"/utf8>>, eyg@interpreter@value:unit()}; https -> {tagged, <<"HTTPS"/utf8>>, eyg@interpreter@value:unit()} end. -file("src/touch_grass/http.gleam", 60). -spec headers_to_gleam(eyg@interpreter@value:value(JVY, JVZ)) -> {ok, list({binary(), binary()})} | {error, eyg@interpreter@break:reason(JVY, JVZ)}. headers_to_gleam(Value) -> eyg@interpreter@cast:as_list_of( Value, fun(H) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"key"/utf8>>, fun eyg@interpreter@cast:as_string/1, H ), fun(K) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"value"/utf8>>, fun eyg@interpreter@cast:as_string/1, H ), fun(Value@1) -> {ok, {K, Value@1}} end ) end ) end ). -file("src/touch_grass/http.gleam", 70). -spec headers_to_eyg(list({binary(), binary()})) -> eyg@interpreter@value:value(any(), any()). headers_to_eyg(Headers) -> {linked_list, gleam@list:map( Headers, fun(H) -> {K, V} = H, {record, maps:from_list( [{<<"key"/utf8>>, {string, K}}, {<<"value"/utf8>>, {string, V}}] )} end )}. -file("src/touch_grass/http.gleam", 79). -spec request_to_gleam(eyg@interpreter@value:value(JWM, JWN)) -> {ok, gleam@http@request:request(bitstring())} | {error, eyg@interpreter@break:reason(JWM, JWN)}. request_to_gleam(Request) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"method"/utf8>>, fun method_to_gleam/1, Request ), fun(Method) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"scheme"/utf8>>, fun scheme_to_gleam/1, Request ), fun(Scheme) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"host"/utf8>>, fun eyg@interpreter@cast:as_string/1, Request ), fun(Host) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"port"/utf8>>, fun(_capture) -> eyg@interpreter@cast:as_option( _capture, fun eyg@interpreter@cast:as_integer/1 ) end, Request ), fun(Port) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"path"/utf8>>, fun eyg@interpreter@cast:as_string/1, Request ), fun(Path) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"query"/utf8>>, fun(_capture@1) -> eyg@interpreter@cast:as_option( _capture@1, fun eyg@interpreter@cast:as_string/1 ) end, Request ), fun(Query) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"headers"/utf8>>, fun headers_to_gleam/1, Request ), fun(Headers) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"body"/utf8>>, fun eyg@interpreter@cast:as_binary/1, Request ), fun(Body) -> {ok, {request, Method, Headers, Body, Scheme, Host, Port, Path, Query}} end ) end ) end ) end ) end ) end ) end ) end ). -file("src/touch_grass/http.gleam", 112). -spec request_to_eyg(gleam@http@request:request(bitstring())) -> eyg@interpreter@value:value(any(), any()). request_to_eyg(Request) -> {request, Method, Headers, Body, Scheme, Host, Port, Path, Query} = Request, {record, maps:from_list( [{<<"method"/utf8>>, method_to_eyg(Method)}, {<<"scheme"/utf8>>, scheme_to_eyg(Scheme)}, {<<"host"/utf8>>, {string, Host}}, {<<"port"/utf8>>, eyg@interpreter@value:option( Port, fun(Field@0) -> {integer, Field@0} end )}, {<<"path"/utf8>>, {string, Path}}, {<<"query"/utf8>>, eyg@interpreter@value:option( Query, fun(Field@0) -> {string, Field@0} end )}, {<<"headers"/utf8>>, headers_to_eyg(Headers)}, {<<"body"/utf8>>, {binary, Body}}] )}. -file("src/touch_grass/http.gleam", 137). -spec response_to_gleam(eyg@interpreter@value:value(JXA, JXB)) -> {ok, gleam@http@response:response(bitstring())} | {error, eyg@interpreter@break:reason(JXA, JXB)}. response_to_gleam(Response) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"status"/utf8>>, fun eyg@interpreter@cast:as_integer/1, Response ), fun(Status) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"headers"/utf8>>, fun headers_to_gleam/1, Response ), fun(Headers) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"body"/utf8>>, fun eyg@interpreter@cast:as_binary/1, Response ), fun(Body) -> {ok, {response, Status, Headers, Body}} end ) end ) end ). -file("src/touch_grass/http.gleam", 146). -spec response_to_eyg(gleam@http@response:response(bitstring())) -> eyg@interpreter@value:value(any(), any()). response_to_eyg(Response) -> {response, Status, Headers, Body} = Response, {record, maps:from_list( [{<<"status"/utf8>>, {integer, Status}}, {<<"headers"/utf8>>, headers_to_eyg(Headers)}, {<<"body"/utf8>>, {binary, Body}}] )}. -file("src/touch_grass/http.gleam", 157). -spec operation_to_gleam(eyg@interpreter@value:value(KJJ, KJK)) -> {ok, ogre@operation:operation(bitstring())} | {error, eyg@interpreter@break:reason(KJJ, KJK)}. operation_to_gleam(Request) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"method"/utf8>>, fun method_to_gleam/1, Request ), fun(Method) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"path"/utf8>>, fun eyg@interpreter@cast:as_string/1, Request ), fun(Path) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"query"/utf8>>, fun(_capture) -> eyg@interpreter@cast:as_option( _capture, fun eyg@interpreter@cast:as_string/1 ) end, Request ), fun(Query) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"headers"/utf8>>, fun headers_to_gleam/1, Request ), fun(Headers) -> gleam@result:'try'( eyg@interpreter@cast:field( <<"body"/utf8>>, fun eyg@interpreter@cast:as_binary/1, Request ), fun(Body) -> {ok, {operation, Method, Path, Query, Headers, Body}} end ) end ) end ) end ) end ).