module Vox::HTTP::Routes::Channel

Mixin for /channel/ routes.

Constants

TYPES

Channel types.

Public Instance Methods

add_pinned_channel_message(channel_id, message_id, reason: nil) click to toggle source

Add a message to a channel's pins. @param channel_id [String, Integer] The ID of the channel to add a pinned message to. @param message_id [String, Integer] The ID of the message to pin. @param reason [String] The reason a message is being pinned. @vox.permissions MANAGE_MESSAGES @vox.api_docs discord.com/developers/docs/resources/channel#add-pinned-channel-message

# File lib/vox/http/routes/channel.rb, line 381
def add_pinned_channel_message(channel_id, message_id, reason: nil)
  route = Route.new(:POST, '/channels/%{channel_id}/pins/%{message_id}',
                    channel_id: channel_id, message_id: message_id)
  request(route, reason: reason)
end
bulk_delete_messages(channel_id, messages, reason: nil) click to toggle source

Delete multiple message in a single request. @param channel_id [String, Integer] The ID of the channel that contains the target messages. @param messages [Array<String, Integer>] The IDs of the target messages. @param reason [String] The reason the messages are being deleted. @note The endpoint will not delete messages older than 2 weeks and will fail with {HTTP::Error::BadRequest}

if any message provided is older than that, or a duplicate within the list of message IDs.

@vox.permissions MANAGE_MESSAGES @vox.api_docs discord.com/developers/docs/resources/channel#bulk-delete-messages

# File lib/vox/http/routes/channel.rb, line 292
def bulk_delete_messages(channel_id, messages, reason: nil)
  route = Route.new(:POST, '/channels/%{channel_id}/messages/bulk-delete', channel_id: channel_id)
  request(route, json: { messages: messages }, reason: reason)
end
create_channel_invite(channel_id, max_age: :undef, max_uses: :undef, temporary: :undef, unique: :undef, target_user: :undef, target_user_type: :undef, reason: nil) click to toggle source

Create a new invite for a channel. All parameters aside from `channel_id` are optional. @param channel_id [String, Integer] The ID of the channel to create an invite in. @param max_age [Integer] Duration of invite in seconds before expiry, or 0 for never. Defaults to 24 hours. @param max_uses [Integer] Maximum number of uses, or 0 for unlimited uses. Defaults to 0. @param temporary [true, false] Whether this invite only grants temporary membership. Defaults to false. @param unique [true, false] Whether or not to avoid using an existing similar invite. Defaults to false. @param target_user [String, Integer] The ID of the user intended for this invite. @param target_user_type [Integer] The [target user type](discord.com/developers/docs/resources/invite#invite-object-target-user-types)

of this invite.

@param reason [String] The reason for creating this invite. @return [Hash<Symbol, Object>] The created [invite object](discord.com/developers/docs/resources/invite#invite-object-invite-structure). @vox.permissions CREATE_INSTANT_INVITE @vox.api_docs discord.com/developers/docs/resources/channel#create-channel-invite

# File lib/vox/http/routes/channel.rb, line 337
def create_channel_invite(channel_id, max_age: :undef, max_uses: :undef, temporary: :undef, unique: :undef,
                          target_user: :undef, target_user_type: :undef, reason: nil)
  route = Route.new(:POST, '/channels/%{channel_id}/invites', channel_id: channel_id)
  json = filter_undef({ max_age: max_age, max_uses: max_uses, temporary: temporary, unique: unique,
                        target_user: target_user, target_user_type: target_user_type })
  request(route, json: json, reason: reason)
end
create_message(channel_id, content: :undef, nonce: :undef, tts: :undef, file: :undef, embed: :undef, allowed_mentions: :undef, attachments: :undef) click to toggle source

Create a message in a channel. All parameters other than `channel_id` are optional. @param channel_id [String, Integer] The ID of the target channel. @param content [String] Message contents, up to 2000 characters. @param nonce [String, Integer] A nonce used for optimistic message sending. @param tts [true, false] Whether this message should use TTS (text to speech). @param file [File, String] A File object, or path to a file, to be uploaded. @param embed [Hash] Embedded rich content. See [embed object](discord.com/developers/docs/resources/channel#embed-object). @param allowed_mentions [Hash<(:parse, :roles, :users), Array<:roles, :users, :everyone>>] Rules for what

mentions are allowed in the message. See [allowed_mentions object](https://discord.com/developers/docs/resources/channel#allowed-mentions-object).

@param attachments [Hash<String, UploadIO>, Array<UploadIO>] A hash in the form of `filename => upload_io` to

be referenced in embeds via the `attachment://` URI, or an array of {UploadIO} who's filenames are derived
from the existing UploadIO object. See [attachment:// docs](https://discord.com/developers/docs/resources/channel#create-message-using-attachments-within-embeds).

@return [Hash<Symbol, Object>] The created [message](discord.com/developers/docs/resources/channel#message-object)

object.

@note You must send one of `content`, `embed`, or `file`. @note If `tts` is set to `true`, you also require the `SEND_TTS_MESSAGES` permission. @vox.permissions SEND_MESSAGES SEND_TTS_MESSAGES @vox.api_docs discord.com/developers/docs/resources/channel#create-message

# File lib/vox/http/routes/channel.rb, line 141
def create_message(channel_id, content: :undef, nonce: :undef, tts: :undef, file: :undef, embed: :undef,
                   allowed_mentions: :undef, attachments: :undef)
  route = Route.new(:POST, '/channels/%{channel_id}/messages', channel_id: channel_id)
  json = filter_undef({ content: content, nonce: nonce, tts: tts, embed: embed,
                        allowed_mentions: allowed_mentions })

  if file != :undef
    data = { file: file, payload_json: MultiJson.dump(json) }
    request(route, data: data)
  elsif attachments != :undef
    attachments = attachments.collect { |k, v| UploadIO.new(v.io, v.content_type, k) } if attachments.is_a? Hash
    attach_hash = Array(0...attachments.size).zip(attachments).to_h
    data = attach_hash.merge({ payload_json: MultiJson.dump(json) })
    request(route, data: data)
  else
    request(route, json: json)
  end
end
create_reaction(channel_id, message_id, emoji) click to toggle source

Create a reaction on a message. @param channel_id [String, Integer] The ID of the channel that contains the target message. @param message_id [String, Integer] The ID of the target message. @param emoji [String] Either a unicode emoji, or Discord emoji in the format of `name:id`. @note Requires `READ_MESSAGE_HISTORY`, and `ADD_REACTIONS` if no other user has reacted with

the emoji.

@note If your emoji is in the wrong format you will receive error code `10014: Unknown Emoji` @note If the emoji name is unknown, you can provide any alphanumeric value as a placeholder. @vox.permissions READ_MESSAGE_HISTORY ADD_REACTIONS @vox.api_docs discord.com/developers/docs/resources/channel#create-reaction

# File lib/vox/http/routes/channel.rb, line 170
def create_reaction(channel_id, message_id, emoji)
  escaped_emoji = URI.encode_www_form_component(emoji)
  route = Route.new(:PUT, '/channels/%{channel_id}/messages/%{message_id}/reactions/%{emoji}/@me',
                    channel_id: channel_id, message_id: message_id, emoji: escaped_emoji)
  request(route)
end
delete_all_reactions(channel_id, message_id) click to toggle source

Delete all reactions on a message. @param channel_id [String, Integer] The ID of the channel that contains the target message. @param message_id [String, Integer] The ID of the target message. @vox.permissions MANAGE_MESSAGES @vox.api_docs discord.com/developers/docs/resources/channel#delete-all-reactions

# File lib/vox/http/routes/channel.rb, line 231
def delete_all_reactions(channel_id, message_id)
  route = Route.new(:DELETE, '/channels/%{channel_id}/messages/%{message_id}/reactions',
                    channel_id: channel_id, message_id: message_id)
  request(route)
end
delete_all_reactions_for_emoji(channel_id, message_id, emoji) click to toggle source

Delete all reactions of a specific emoji on a message. @param channel_id [String, Integer] The ID of the channel that contains the target message. @param message_id [String, Integer] The ID of the target message. @param emoji [String] Either a unicode emoji, or Discord emoji in the format of `name:id`. @note If your emoji is in the wrong format you will receive error code `10014: Unknown Emoji` @note If the emoji name is unknown, you can provide any alphanumeric value as a placeholder. @vox.permissions MANAGE_MESSAGES @vox.api_docs discord.com/developers/docs/resources/channel#delete-all-reactions-for-emoji

# File lib/vox/http/routes/channel.rb, line 245
def delete_all_reactions_for_emoji(channel_id, message_id, emoji)
  escaped_emoji = URI.encode_www_form_component(emoji)
  route = Route.new(:DELETE, '/channels/%{channel_id}/messages/%{message_id}/reactions/%{emoji}',
                    channel_id: channel_id, message_id: message_id, emoji: escaped_emoji)
  request(route)
end
delete_channel(channel_id, reason: nil) click to toggle source

Delete a channel by ID, or close a private message. @param channel_id [String, Integer] The ID of the channel to be deleted. @param reason [String, nil] The reason the channel is being deleted. @return [Hash<Symbol, Object>] The [channel](discord.com/developers/docs/resources/channel#channel-object)

object of the deleted channel.

@note Fires a channel delete event. @note Deleting a category will not delete its children, each child will have

its `parent_id` field removed and a channel update will be fired for each
of them.

@vox.permissions MANAGE_CHANNELS @vox.api_docs discord.com/developers/docs/resources/channel#deleteclose-channel

# File lib/vox/http/routes/channel.rb, line 84
def delete_channel(channel_id, reason: nil)
  route = Route.new(:DELETE, '/channels/%{channel_id}', channel_id: channel_id)
  request(route, reason: reason)
end
delete_channel_permission(channel_id, overwrite_id, reason: nil) click to toggle source

Delete a channel permission overwrite for a user or role in a channel. @param channel_id [String, Integer] The ID of the channel that contains the target overwrite. @param overwrite_id [String, Integer] The ID of the target user or role. @param reason [String] The reason this overwrite is being deleted. @note Only usable within guild channels. @vox.permissions MANAGE_ROLES @vox.api_docs discord.com/developers/docs/resources/channel#delete-channel-permission

# File lib/vox/http/routes/channel.rb, line 352
def delete_channel_permission(channel_id, overwrite_id, reason: nil)
  route = Route.new(:DELETE, '/channels/%{channel_id}/permissions/%{overwrite_id}',
                    channel_id: channel_id, overwrite_id: overwrite_id)
  request(route, reason: reason)
end
delete_message(channel_id, message_id, reason: nil) click to toggle source

Delete a previously sent message. @param channel_id [String, Integer] The ID of the channel that contains the target message. @param message_id [String, Integer] The ID of the target message. @param reason [String] The reason for deleting this message. @vox.permissions MANAGE_MESSAGES (if not the message was not sent by the current user) @vox.api_docs discord.com/developers/docs/resources/channel#delete-message

# File lib/vox/http/routes/channel.rb, line 278
def delete_message(channel_id, message_id, reason: nil)
  route = Route.new(:DELETE, '/channels/%{channel_id}/messages/%{message_id}',
                    channel_id: channel_id, message_id: message_id)
  request(route, reason: reason)
end
delete_own_reaction(channel_id, message_id, emoji) click to toggle source

Delete a reaction from the current user on a message. @param channel_id [String, Integer] The ID of the channel that contains the target message. @param message_id [String, Integer] The ID of the target message. @param emoji [String] Either a unicode emoji, or Discord emoji in the format of `name:id`. @note If your emoji is in the wrong format you will receive error code `10014: Unknown Emoji` @note If the emoji name is unknown, you can provide any alphanumeric value as a placeholder. @vox.api_docs discord.com/developers/docs/resources/channel#delete-own-reaction

# File lib/vox/http/routes/channel.rb, line 184
def delete_own_reaction(channel_id, message_id, emoji)
  escaped_emoji = URI.encode_www_form_component(emoji)
  route = Route.new(:DELETE, '/channels/%{channel_id}/messages/%{message_id}/reactions/%{emoji}/@me',
                    channel_id: channel_id, message_id: message_id, emoji: escaped_emoji)
  request(route)
end
delete_pinned_channel_message(channel_id, message_id, reason: nil) click to toggle source

Remove a message from a channel's pins. @param channel_id [String, Integer] The ID of the channel to remove a pinned message from. @param message_id [String, Integer] The ID of the message to unpin. @param reason [String] The reason a message is being unpinned. @vox.permissions MANAGE_MESSAGES @vox.api_docs discord.com/developers/docs/resources/channel#delete-pinned-channel-message

# File lib/vox/http/routes/channel.rb, line 393
def delete_pinned_channel_message(channel_id, message_id, reason: nil)
  route = Route.new(:DELETE, '/channels/%{channel_id}/pins/%{message_id}',
                    channel_id: channel_id, message_id: message_id)
  request(route, reason: reason)
end
delete_user_reaction(channel_id, message_id, emoji, user_id) click to toggle source

Delete a reaction from a user on a message. @param channel_id [String, Integer] The ID of the channel that contains the target message. @param message_id [String, Integer] The ID of the target message. @param emoji [String] Either a unicode emoji, or Discord emoji in the format of `name:id`. @param user_id [String, Integer] The ID of the user to delete the reaction for. @vox.permissions MANAGE_MESSAGES @note If your emoji is in the wrong format you will receive error code `10014: Unknown Emoji` @note If the emoji name is unknown, you can provide any alphanumeric value as a placeholder. @vox.permissions MANAGE_MESSAGES @vox.api_docs discord.com/developers/docs/resources/channel#delete-user-reaction

# File lib/vox/http/routes/channel.rb, line 201
def delete_user_reaction(channel_id, message_id, emoji, user_id)
  escaped_emoji = URI.encode_www_form_component(emoji)
  route = Route.new(:DELETE, '/channels/%{channel_id}/messages/%{message_id}/reactions/%{emoji}/%{user_id}',
                    channel_id: channel_id, message_id: message_id, emoji: escaped_emoji, user_id: user_id)
  request(route)
end
edit_channel_permissions(channel_id, overwrite_id, allow:, deny:, type:, reason: nil) click to toggle source

Edit the channel permission overwrites for a user or role in a channel. @param channel_id [String, Integer] The ID of the channel that contains the target overwrite. @param overwrite_id [String, Integer] The ID of the target user or role. @param allow [Integer] Bitwise value of all allowed permissions. @param deny [Integer] Bitwise value of all denied permissions. @param type [:member, :role] @note Only usable for guild channels. @vox.permissions MANAGE_ROLES @vox.api_docs discord.com/developers/docs/resources/channel#edit-channel-permissions

# File lib/vox/http/routes/channel.rb, line 306
def edit_channel_permissions(channel_id, overwrite_id, allow:, deny:, type:, reason: nil)
  route = Route.new(:PUT, '/channels/%{channel_id}/permissions/%{overwrite_id}',
                    channel_id: channel_id, overwrite_id: overwrite_id)
  json = { allow: allow, deny: deny, type: type }
  request(route, json: json, reason: reason)
end
edit_message(channel_id, message_id, content: :undef, embed: :undef, flags: :undef) click to toggle source

Edit a previously sent message. All parameters other than `channel_id` and `message_id` are optional and nullable. @param channel_id [String, Integer] The ID of the channel that contains the target message. @param message_id [String, Integer] The ID of the target message. @param content [String, nil] The message content. If `nil`, existing content will be removed. @param embed [Hash] Embedded rich content. If `nil`, the existing embed will be removed. @param flags [Integer] Message flags. If `nil`, the existing flags will be removed. When setting flags be sure

to include all previously set flags in addition to the ones you are modifying.
See [message flags](https://discord.com/developers/docs/resources/channel#message-object-message-flags).

@note You can only edit the flags of a message not sent by the current user, and only if the current

user has `MANAGE_MESSAGES` permissions.

@vox.permissions MANAGE_MESSAGES (if editing the flags of a message not sent by the current user) @vox.api_docs discord.com/developers/docs/resources/channel#edit-message

# File lib/vox/http/routes/channel.rb, line 265
def edit_message(channel_id, message_id, content: :undef, embed: :undef, flags: :undef)
  route = Route.new(:PATCH, '/channels/%{channel_id}/messages/%{message_id}',
                    channel_id: channel_id, message_id: message_id)
  json = filter_undef({ content: content, embed: embed, flags: flags })
  request(route, json: json)
end
get_channel(channel_id) click to toggle source

Get a channel by ID. @param channel_id [String, Integer] ID of the desired channel. @return [Hash<Symbol, Object>] A [channel](discord.com/developers/docs/resources/channel#channel-object)

object.

@vox.api_docs discord.com/developers/docs/resources/channel#get-channel

# File lib/vox/http/routes/channel.rb, line 29
def get_channel(channel_id)
  request(Route.new(:GET, '/channels/%{channel_id}', channel_id: channel_id))
end
get_channel_invites(channel_id) click to toggle source

Get a list of invites (with invite metadata) for a channel. @param channel_id [String, Integer] The ID of the target channel. @return [Array<Hash<Symbol, Object>>] An array of [invite objects](discord.com/developers/docs/resources/invite#invite-object-invite-structure)

with [invite metadata](https://discord.com/developers/docs/resources/invite#invite-metadata-object-invite-metadata-structure).

@vox.permissions MANAGE_CHANNELS @vox.api_docs discord.com/developers/docs/resources/channel#get-channel-invites

# File lib/vox/http/routes/channel.rb, line 319
def get_channel_invites(channel_id)
  route = Route.new(:GET, '/channels/%{channel_id}/invites', channel_id: channel_id)
  request(route)
end
get_channel_message(channel_id, message_id) click to toggle source

Get a specific message from a channel by ID. @param channel_id [String, Integer] The ID of the channel containing the desired message. @param message_id [String, Integer] The ID of the desired message. @return [Hash<Symbol, Object>] The [message](discord.com/developers/docs/resources/channel#message-object)

object.

@note In guild channels the `READ_MESSAGE_HISTORY` permission is requred. @vox.permissions READ_MESSAGE_HISTORY @vox.api_docs discord.com/developers/docs/resources/channel#get-channel-message

# File lib/vox/http/routes/channel.rb, line 117
def get_channel_message(channel_id, message_id)
  route = Route.new(:GET, '/channels/%{channel_id}/messages/%{message_id}',
                    channel_id: channel_id, message_id: message_id)
  request(route)
end
get_channel_messages(channel_id, around: :undef, before: :undef, after: :undef, limit: :undef) click to toggle source

Get messages from a channel, by channel ID. All parameters other than `channel_id` are optional. @param channel_id [String, Integer] The ID of the channel where the messages

are being fetched from.

@param around [String, Integer] Retreive messages around this ID. @param before [String, Integer] Retreive messages before this ID. @param after [String, Integer] Retreive messages after this ID. @param limit [Integer] Maximum number of messages to return. Can be between 1-100. @return [Array<Hash<Symbol, Object>>] [Message](discord.com/developers/docs/resources/channel#message-object)

objects returned from the channel history.

@note If you lack the `READ_MESSAGE_HISTORY` permission in the desired channel this

will return no messages.

@vox.permissions VIEW_CHANNEL @vox.api_docs discord.com/developers/docs/resources/channel#get-channel-messages

# File lib/vox/http/routes/channel.rb, line 103
def get_channel_messages(channel_id, around: :undef, before: :undef, after: :undef, limit: :undef)
  route = Route.new(:GET, '/channels/%{channel_id}/messages', channel_id: channel_id)
  params = filter_undef({ around: around, before: before, after: after, limit: limit })
  request(route, query: params)
end
get_pinned_messages(channel_id) click to toggle source

Get all pinned messages in a channel. @param channel_id [String, Integer] The ID of the channel to fetch the pins of. @return [Array<Hash<Symbol, Object>>] An array of pinned [message objects](discord.com/developers/docs/resources/channel#message-object). @vox.api_docs discord.com/developers/docs/resources/channel#get-pinned-messages

# File lib/vox/http/routes/channel.rb, line 370
def get_pinned_messages(channel_id)
  route = Route.new(:GET, '/channels/%{channel_id}/pins', channel_id: channel_id)
  request(route)
end
get_reactions(channel_id, message_id, emoji, before: :undef, after: :undef, limit: :undef) click to toggle source

Get a list of users that have reacted with a specific emoji. @param channel_id [String, Integer] The ID of the channel that contains the target message. @param message_id [String, Integer] The ID of the target message. @param emoji [String] Either a unicode emoji, or Discord emoji in the format of `name:id`. @param before [String, Integer] Retreive users before this ID. @param after [String, Integer] Retreive users after this ID. @param limit [Integer] The maximum number of users to receive. Between 1-100. @note If your emoji is in the wrong format you will receive error code `10014: Unknown Emoji` @note If the emoji name is unknown, you can provide any alphanumeric value as a placeholder. @vox.api_docs discord.com/developers/docs/resources/channel#get-reactions

# File lib/vox/http/routes/channel.rb, line 218
def get_reactions(channel_id, message_id, emoji, before: :undef, after: :undef, limit: :undef)
  escaped_emoji = URI.encode_www_form_component(emoji)
  params = filter_undef({ before: before, after: after, limit: limit })
  route = Route.new(:GET, '/channels/%{channel_id}/messages/%{message_id}/reactions/%{emoji}',
                    channel_id: channel_id, message_id: message_id, emoji: escaped_emoji)
  request(route, query: params)
end
group_dm_add_recipient(channel_id, user_id, access_token:, nick: :undef) click to toggle source

Add a recipient to a group DM using their access token. @param channel_id [String, Integer] The ID of the group DM to add the user to. @param user_id [String, Integer] The ID of the user to add. @param access_token [String] The access token of a user that has granted your app

the `gdm.join` scope.

@param nick [String] The nickname of the user being added. @vox.api_docs discord.com/developers/docs/resources/channel#group-dm-add-recipient

# File lib/vox/http/routes/channel.rb, line 406
def group_dm_add_recipient(channel_id, user_id, access_token:, nick: :undef)
  route = Route.new(:PUT, '/channels/%{channel_id}/recipients/%{user_id}',
                    channel_id: channel_id, user_id: user_id)
  json = filter_undef({ access_token: access_token, nick: nick })
  request(route, json: json)
end
group_dm_remove_recipient(channel_id, user_id) click to toggle source

Remove a recipient from a group DM. @param channel_id [String, Integer] The ID of the channel the user is being removed from. @param user_id [String, Integer] The ID of the user being removed from the group DM. @vox.api_docs discord.com/developers/docs/resources/channel#group-dm-remove-recipient

# File lib/vox/http/routes/channel.rb, line 417
def group_dm_remove_recipient(channel_id, user_id)
  route = Route.new(:DELETE, '/channels/%{channel_id}/recipients/%{user_id}',
                    channel_id: channel_id, user_id: user_id)
  request(route)
end
modify_channel(channel_id, name: :undef, type: :undef, position: :undef, topic: :undef, nsfw: :undef, rate_limit_per_user: :undef, bitrate: :undef, user_limit: :undef, permission_overwrites: :undef, parent_id: :undef, reason: nil) click to toggle source

Update a channel's settings. Parameters other than `channel_id` are all optional. @param name [String] Channel name, must be between 2-100 characters. @param type [Integer] Channel type, only switching between `GUILD_TEXT` and `GUILD_NEWS`

is supported on guilds which have the `NEWS` feature.

@param position [Integer, nil] The position of the channel in the listing. @param topic [String, nil] Channel topic, must be between 0-1024 characters. Only usable in `GUILD_TEXT`

and `GUILD_NEWS` channels.

@param nsfw [true, false, nil] Whether the channel is not safe for work. Only usable on

`GUILD_TEXT`, `GUILD_NEWS`, and `GUILD_STORE` channels.

@param rate_limit_per_user [Integer, nil] The amount of seconds a user has to wait between sending

messages. This value can be between 0-21600 seconds. Users and bots with `MANAGE_MESSAGES`
or `MANAGE_CHANNEL` are unaffected by this limit. Only usable in `GUILD_TEXT` channels.

@param bitrate [Integer, nil] The bitrate of a `GUILD_VOICE` channel. Between 8000 and 96000, or

128000 for VIP servers.

@param user_limit [Integer, nil] The maximum amount of users allowed in a voice channel. 0 is no limit,

and limiting values can be between 1-99.

@param permission_overwrites [Array<Overwrite, Hash>] Channel or category specific permissions. @param parent_id [String, Integer] The ID of the new parent category for a channel. Only usable in

`GUILD_TEXT`, `GUILD_NEWS`, `GUILD_STORE`, and `GUILD_VOICE` channels.

@param reason [String, nil] The reason for modifying the channel. @return [Hash<Symbol, Object>] A [channel](discord.com/developers/docs/resources/channel#channel-object)

object.

@note Fires a channel update. In the event of modifying a category, individual

channel updates will fire for each child that is also modified.

@vox.permissions MANAGE_CHANNELS @vox.api_docs discord.com/developers/docs/resources/channel#modify-channel

# File lib/vox/http/routes/channel.rb, line 59
def modify_channel(channel_id, name: :undef, type: :undef, position: :undef,
                   topic: :undef, nsfw: :undef, rate_limit_per_user: :undef,
                   bitrate: :undef, user_limit: :undef,
                   permission_overwrites: :undef, parent_id: :undef, reason: nil)
  json = filter_undef({
                        name: name, type: type, position: position, topic: topic, nsfw: nsfw,
                        rate_limit_per_user: rate_limit_per_user, bitrate: bitrate,
                        user_limit: user_limit, permission_overwrites: permission_overwrites,
                        parent_id: parent_id
                      })
  route = Route.new(:PATCH, '/channels/%{channel_id}', channel_id: channel_id)
  request(route, json: json, reason: reason)
end
trigger_typing_indicator(channel_id) click to toggle source

Post a typing indicator for a channel. @param channel_id [String, Integer] The ID of the channel to appear as typing in. @vox.api_docs discord.com/developers/docs/resources/channel#trigger-typing-indicator

# File lib/vox/http/routes/channel.rb, line 361
def trigger_typing_indicator(channel_id)
  route = Route.new(:POST, '/channels/%{channel_id}/typing', channel_id: channel_id)
  request(route)
end