EDA.Member (EDA v0.3.0)

Copy Markdown View Source

Represents a Discord guild member.

Summary

Functions

Adds a role to a guild member.

Applies a changeset to a member. No-op if the changeset has no changes.

Adds a change to an existing changeset for this entity.

Creates a changeset for batching mutations to this entity.

Fetches a member by guild ID and user ID. Checks cache first, falls back to REST.

Kicks a member from a guild.

Removes a role from a guild member.

Types

t()

@type t() :: %EDA.Member{
  avatar: String.t() | nil,
  communication_disabled_until: String.t() | nil,
  deaf: boolean() | nil,
  joined_at: String.t() | nil,
  mute: boolean() | nil,
  nick: String.t() | nil,
  pending: boolean() | nil,
  premium_since: String.t() | nil,
  roles: [String.t()] | nil,
  user: EDA.User.t() | nil
}

Functions

add_role(guild_id, member, role_id, opts \\ [])

@spec add_role(
  String.t() | integer(),
  t() | String.t() | integer(),
  String.t() | integer(),
  keyword()
) :: :ok | {:error, term()}

Adds a role to a guild member.

Options

  • :reason - Audit log reason

apply_changeset(guild_id, changeset, opts \\ [])

@spec apply_changeset(String.t() | integer(), EDA.Entity.Changeset.t(), keyword()) ::
  {:ok, t()} | {:error, term()}

Applies a changeset to a member. No-op if the changeset has no changes.

Requires guild_id since members are guild-scoped.

Options

  • :reason - Audit log reason

change(cs, key, value)

Adds a change to an existing changeset for this entity.

changeset(entity)

@spec changeset(t()) :: EDA.Entity.Changeset.t()

Creates a changeset for batching mutations to this entity.

fetch_member(guild_id, user_id)

@spec fetch_member(String.t() | integer(), String.t() | integer()) ::
  {:ok, t()} | {:error, term()}

Fetches a member by guild ID and user ID. Checks cache first, falls back to REST.

from_raw(raw)

@spec from_raw(map()) :: t()

kick(guild_id, member, opts \\ [])

@spec kick(String.t() | integer(), t() | String.t() | integer(), keyword()) ::
  :ok | {:error, term()}

Kicks a member from a guild.

Options

  • :reason - Audit log reason

modify(guild_id, member, payload, opts \\ [])

@spec modify(String.t() | integer(), t() | String.t() | integer(), map(), keyword()) ::
  {:ok, t()} | {:error, term()}

Modifies a guild member.

Options

  • :reason - Audit log reason

remove_role(guild_id, member, role_id, opts \\ [])

@spec remove_role(
  String.t() | integer(),
  t() | String.t() | integer(),
  String.t() | integer(),
  keyword()
) :: :ok | {:error, term()}

Removes a role from a guild member.

Options

  • :reason - Audit log reason