Packages
mist
0.3.0
6.0.3
6.0.2
6.0.1
6.0.0
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0
5.0.0-rc1
4.0.7
4.0.6
4.0.5
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
3.0.0
2.0.0
1.2.0
1.1.0
1.0.0
1.0.0-rc3
1.0.0-rc2
1.0.0-rc1
0.17.0
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.3
a misty Gleam web server
Current section
Files
Jump to
Current section
Files
src/mist.erl
-module(mist).
-compile(no_auto_import).
-export([serve/2, main/0]).
-spec serve(
integer(),
fun((glisten@tcp:handler_message(), glisten@tcp:loop_state(gleam@option:option(gleam@otp@process:timer()))) -> gleam@otp@actor:next(glisten@tcp:loop_state(gleam@option:option(gleam@otp@process:timer()))))
) -> {ok, nil} | {error, glisten:start_error()}.
serve(Port, Handler) ->
glisten:serve(Port, Handler, none).
-spec main() -> nil.
main() ->
Empty_response = begin
_pipe = gleam@http@response:new(200),
gleam@http@response:set_body(_pipe, <<>>)
end,
Not_found = begin
_pipe@1 = gleam@http@response:new(404),
gleam@http@response:set_body(_pipe@1, <<>>)
end,
{ok, _@4} = case serve(
8080,
mist@http:handler(
fun(Req) ->
case {erlang:element(2, Req),
gleam@http@request:path_segments(Req)} of
{get, []} ->
Empty_response;
{get, [<<"user"/utf8>>, Id]} ->
_pipe@2 = gleam@http@response:new(200),
gleam@http@response:set_body(_pipe@2, <<Id/binary>>);
{post, [<<"user"/utf8>>]} ->
_pipe@3 = gleam@http@response:new(200),
gleam@http@response:set_body(
_pipe@3,
erlang:element(4, Req)
);
{_@1, _@2} ->
Not_found
end
end
)
) of
{ok, _@3} -> {ok, _@3};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"mist"/utf8>>,
function => <<"main"/utf8>>,
line => 29})
end,
gleam@erlang:sleep_forever().