Current section
Files
Jump to
Current section
Files
src/glats@internal@test@request_handler.erl
-module(glats@internal@test@request_handler).
-compile([no_auto_import, nowarn_unused_vars]).
-export([ping_pong_handler/2, main/0]).
-spec ping_pong_handler(glats@handler:request(), GZG) -> glats@handler:request_outcome(GZG).
ping_pong_handler(Req, State) ->
gleam@io:println(<<"Got message: "/utf8, (erlang:element(3, Req))/binary>>),
{reply,
{response,
erlang:element(2, Req),
none,
<<(erlang:element(3, Req))/binary, " from glats!"/utf8>>},
State}.
-spec main() -> {ok, nil} | {error, gleam@otp@actor:start_error()}.
main() ->
gleam@result:then(
begin
_pipe = glats@settings:new(<<"localhost"/utf8>>, 4222),
glats:connect(_pipe)
end,
fun(Conn) ->
_assert_subject = glats@handler:handle_request(
Conn,
[],
<<"do.ping"/utf8>>,
none,
fun ping_pong_handler/2
),
{ok, _} = case _assert_subject of
{ok, _} -> _assert_subject;
_assert_fail ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail,
module => <<"glats/internal/test/request_handler"/utf8>>,
function => <<"main"/utf8>>,
line => 15})
end,
gleam_erlang_ffi:sleep_forever(),
{ok, nil}
end
).