-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", 43). -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, case erlang:element(6, Bot) of {some, Name} -> gleam@erlang@process:send( gleam@erlang@process:named_subject(Name), {send_packet, Packet} ); none -> nil end.