REST API endpoints for Discord guild members.
All functions return {:ok, result} or {:error, reason}.
Summary
Functions
Adds a role to a guild member.
Gets a member of a guild.
Lists members of a guild.
Modifies a guild member.
Moves a member to a different voice channel.
Removes a member from a guild (kick).
Removes a role from a guild member.
Searches guild members by username/nickname.
Returns a lazy Stream that paginates through all members of a guild.
Functions
@spec add_role( String.t() | integer(), String.t() | integer(), String.t() | integer(), keyword() ) :: :ok | {:error, term()}
Adds a role to a guild member.
Gets a member of a guild.
Lists members of a guild.
@spec modify(String.t() | integer(), String.t() | integer(), map(), keyword()) :: {:ok, map()} | {:error, term()}
Modifies a guild member.
@spec move_voice( String.t() | integer(), String.t() | integer(), String.t() | integer() | nil ) :: {:ok, map()} | {:error, term()}
Moves a member to a different voice channel.
Pass nil as channel_id to disconnect the user from voice.
Examples
EDA.API.Member.move_voice(guild_id, user_id, new_channel_id)
EDA.API.Member.move_voice(guild_id, user_id, nil) # disconnect
Removes a member from a guild (kick).
@spec remove_role( String.t() | integer(), String.t() | integer(), String.t() | integer(), keyword() ) :: :ok | {:error, term()}
Removes a role from a guild member.
Searches guild members by username/nickname.
@spec stream( String.t() | integer(), keyword() ) :: Enumerable.t()
Returns a lazy Stream that paginates through all members of a guild.
Uses after-only pagination (Discord constraint for the members endpoint).
Options
:per_page— members per request (1-1000, default 1000):after— start after this user ID
Examples
EDA.API.Member.stream(guild_id) |> Enum.to_list()
EDA.API.Member.stream(guild_id) |> Stream.filter(&(&1["user"]["bot"])) |> Enum.to_list()