Current section
Files
Jump to
Current section
Files
src/discord_gleam@ws@commands@request_guild_members.erl
-module(discord_gleam@ws@commands@request_guild_members).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/discord_gleam/ws/commands/request_guild_members.gleam").
-export([request_guild_members/5]).
-export_type([request_guild_members_option/0, request_guild_members_data/0]).
-type request_guild_members_option() :: {'query',
binary(),
gleam@option:option(integer())} |
{user_ids, list(binary())}.
-type request_guild_members_data() :: {request_guild_members_data,
binary(),
request_guild_members_option(),
gleam@option:option(boolean()),
gleam@option:option(binary())}.
-file("src/discord_gleam/ws/commands/request_guild_members.gleam", 38).
-spec data_to_json(request_guild_members_data()) -> gleam@json:json().
data_to_json(Data) ->
Fields = [{<<"guild_id"/utf8>>, gleam@json:string(erlang:element(2, Data))}],
Fields@1 = case erlang:element(4, Data) of
{some, Presences} ->
lists:append(
Fields,
[{<<"presences"/utf8>>, gleam@json:bool(Presences)}]
);
none ->
Fields
end,
Fields@2 = case erlang:element(5, Data) of
{some, Nonce} ->
lists:append(
Fields@1,
[{<<"nonce"/utf8>>, gleam@json:string(Nonce)}]
);
none ->
Fields@1
end,
_pipe = case erlang:element(3, Data) of
{'query', Query, Limit} ->
lists:append(
Fields@2,
[{<<"query"/utf8>>, gleam@json:string(Query)},
{<<"limit"/utf8>>,
gleam@json:int(gleam@option:unwrap(Limit, 0))}]
);
{user_ids, User_ids} ->
lists:append(
Fields@2,
[{<<"user_ids"/utf8>>,
gleam@json:array(User_ids, fun gleam@json:string/1)}]
)
end,
gleam@json:object(_pipe).
-file("src/discord_gleam/ws/commands/request_guild_members.gleam", 22).
-spec request_guild_members(
discord_gleam@types@bot:bot(),
binary(),
request_guild_members_option(),
gleam@option:option(boolean()),
gleam@option:option(binary())
) -> nil.
request_guild_members(Bot, Guild_id, Option, Presences, Nonce) ->
Data = {request_guild_members_data, Guild_id, Option, Presences, Nonce},
Packet = begin
_pipe = gleam@json:object(
[{<<"op"/utf8>>, gleam@json:int(8)},
{<<"d"/utf8>>, data_to_json(Data)}]
),
gleam@json:to_string(_pipe)
end,
gleam@erlang@process:send(erlang:element(6, Bot), {send_packet, Packet}).