grom/guild/role

Types

pub type Colors {
  Colors(
    primary: Int,
    secondary: option.Option(Int),
    tertiary: option.Option(Int),
  )
}

Constructors

pub type Create {
  Create(
    name: option.Option(String),
    permissions: option.Option(List(permission.Permission)),
    colors: option.Option(Colors),
    is_hoisted: Bool,
    icon: option.Option(image.Data),
    unicode_emoji: option.Option(String),
    is_mentionable: Bool,
  )
}

Constructors

pub type Flag {
  InPrompt
}

Constructors

  • InPrompt
pub type IconFormat {
  PngIcon
  JpegIcon
  WebpIcon
}

Constructors

  • PngIcon
  • JpegIcon
  • WebpIcon
pub type Modify {
  Modify(
    name: modification.Modification(String),
    permissions: modification.Modification(
      List(permission.Permission),
    ),
    colors: modification.Modification(Colors),
    is_hoisted: option.Option(Bool),
    icon: modification.Modification(image.Data),
    unicode_emoji: modification.Modification(String),
    is_mentionable: option.Option(Bool),
  )
}

Constructors

pub type Role {
  Role(
    id: String,
    name: String,
    colors: Colors,
    is_hoisted: Bool,
    icon_hash: option.Option(String),
    unicode_emoji: option.Option(String),
    position: Int,
    permissions: List(permission.Permission),
    is_managed: Bool,
    is_mentionable: Bool,
    tags: option.Option(Tags),
    flags: List(Flag),
  )
}

Constructors

pub type Tags {
  Tags(
    bot_id: option.Option(String),
    integration_id: option.Option(String),
    is_premium_subscriber: Bool,
    subscription_listing_id: option.Option(String),
    is_available_for_purchase: Bool,
    is_guild_connections: Bool,
  )
}

Constructors

  • Tags(
      bot_id: option.Option(String),
      integration_id: option.Option(String),
      is_premium_subscriber: Bool,
      subscription_listing_id: option.Option(String),
      is_available_for_purchase: Bool,
      is_guild_connections: Bool,
    )

Values

pub fn create(
  client: grom.Client,
  in guild_id: String,
  using create: Create,
  because reason: option.Option(String),
) -> Result(Role, grom.Error)
pub fn delete(
  client: grom.Client,
  from guild_id: String,
  id role_id: String,
  because reason: option.Option(String),
) -> Result(Nil, grom.Error)
pub fn get(
  client: grom.Client,
  for guild_id: String,
  id role_id: String,
) -> Result(Role, grom.Error)
pub fn icon_request(
  id id: String,
  hash icon: String,
  format format: IconFormat,
) -> request.Request(String)
pub fn modify(
  client: grom.Client,
  in guild_id: String,
  id role_id: String,
  using modify: Modify,
  because reason: option.Option(String),
) -> Result(Role, grom.Error)
pub fn new_create() -> Create

Usage example:

let create_role_data = role.Create(..role.new_create(), name: Some("name"))

use role <- result.try(
  client
  |> role.create(
    in: "guild_id",
    using: create_role_data,
    because: Some("reason")
  )
)
pub fn new_modify() -> Modify

Usage example:

let modify_role_data = role.Modify(
  ..role.new_modify(),
  name: New("name"),
  icon: Delete,
)

use role <- result.try(
  client
  |> role.modify(
    in: "guild_id",
    id: "role_id",
    using: modify_role_data,
    because: Some("reason"),
  ),
)
Search Document