Current section
Files
Jump to
Current section
Files
src/shimmer@ws@packets@ready.erl
-module(shimmer@ws@packets@ready).
-compile(no_auto_import).
-export([from_map/1]).
-export_type([ready_packet/0]).
-type ready_packet() :: {ready_packet,
shimmer@types@user:user(),
binary(),
binary()}.
-spec from_map(gleam@map:map_(gleam@dynamic:dynamic(), gleam@dynamic:dynamic())) -> {ok,
ready_packet()} |
{error, shimmer@internal@error:shimmer_error()}.
from_map(Map) ->
case begin
_pipe = Map,
shimmer@internal@map_helpers:get_map_field_safe(
_pipe,
shimmer@internal@map_helpers:dyn_atom(<<"user"/utf8>>)
)
end of
{error, _try} -> {error, _try};
{ok, User_map} ->
case begin
_pipe@1 = User_map,
shimmer@types@user:from_map(_pipe@1)
end of
{error, _try@1} -> {error, _try@1};
{ok, User} ->
case begin
_pipe@2 = Map,
shimmer@internal@map_helpers:get_field_safe(
_pipe@2,
shimmer@internal@map_helpers:dyn_atom(
<<"session_id"/utf8>>
),
fun gleam@dynamic:string/1
)
end of
{error, _try@2} -> {error, _try@2};
{ok, Session_id} ->
case begin
_pipe@3 = Map,
shimmer@internal@map_helpers:get_field_safe(
_pipe@3,
shimmer@internal@map_helpers:dyn_atom(
<<"resume_gateway_url"/utf8>>
),
fun gleam@dynamic:string/1
)
end of
{error, _try@3} -> {error, _try@3};
{ok, Resume_gateway_url} ->
{ok,
{ready_packet,
User,
Session_id,
Resume_gateway_url}}
end
end
end
end.