grom/guild/role
Types
pub type Colors {
Colors(
primary: Int,
secondary: option.Option(Int),
tertiary: option.Option(Int),
)
}
Constructors
-
Colors( primary: Int, secondary: option.Option(Int), tertiary: option.Option(Int), )
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
-
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, )Arguments
- name
-
If None -> “new role”
- permissions
-
If None -> same as @everyone permissions
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
-
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), )
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
-
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), )
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"),
),
)