-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.