Current section

Files

Jump to
discord_gleam src discord_gleam@http@endpoints.erl
Raw

src/discord_gleam@http@endpoints.erl

-module(discord_gleam@http@endpoints).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([me/1, send_message/3]).
-spec me(binary()) -> {ok, discord_gleam@types@user:user()} |
{error, discord_gleam@internal@error:discord_error()}.
me(Token) ->
Request = discord_gleam@http@request:new_auth(
get,
<<"/users/@me"/utf8>>,
Token
),
case gleam@hackney:send(Request) of
{ok, Resp} ->
case gleam@http@response:get_header(Resp, <<"content-type"/utf8>>) of
{ok, <<"application/json"/utf8>>} ->
discord_gleam@types@user:from_json_string(
erlang:element(4, Resp)
);
_ ->
{error,
{invalid_format,
{decode_error,
<<"application/json content-type"/utf8>>,
<<"unknown"/utf8>>,
[]}}}
end;
{error, Err} ->
{error, {http_error, Err}}
end.
-spec send_message(binary(), discord_gleam@types@message:message(), binary()) -> nil.
send_message(Token, Message, Channel_id) ->
Data = discord_gleam@types@message:to_string(Message),
gleam@io:debug(Data),
logging:log(
debug,
<<"Sending message: "/utf8, (erlang:element(2, Message))/binary>>
),
Request = discord_gleam@http@request:new_auth_post(
post,
<<<<"/channels/"/utf8, Channel_id/binary>>/binary, "/messages"/utf8>>,
Token,
Data
),
case gleam@hackney:send(Request) of
{ok, Resp} ->
gleam@io:debug(Resp),
nil;
{error, Err} ->
logging:log(error, <<"Failed to send message: "/utf8>>),
gleam@io:debug(Err),
nil
end.