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(discord_gleam@discord@snowflake:snowflake(discord_gleam@discord@snowflake:user()))}.
-type request_guild_members_data() :: {request_guild_members_data,
discord_gleam@discord@snowflake:snowflake(discord_gleam@discord@snowflake:guild()),
request_guild_members_option(),
gleam@option:option(boolean()),
gleam@option:option(binary())}.
-file("src/discord_gleam/ws/commands/request_guild_members.gleam", 37).
-spec data_to_json(request_guild_members_data()) -> gleam@json:json().
data_to_json(Data) ->
Fields = [{<<"guild_id"/utf8>>,
gleam@json:string(
discord_gleam@discord@snowflake:to_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(Id) ->
gleam@json:string(
discord_gleam@discord@snowflake:to_string(
Id
)
)
end
)}]
)
end,
gleam@json:object(_pipe).
-file("src/discord_gleam/ws/commands/request_guild_members.gleam", 21).
-spec request_guild_members(
discord_gleam@bot:bot(),
discord_gleam@discord@snowflake:snowflake(discord_gleam@discord@snowflake:guild()),
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,
discord_gleam@bot:send_packet(Bot, Packet).