module Vox::HTTP::Routes::User

Mixin for user routes.

Public Instance Methods

create_dm(recipient_id) click to toggle source

Create a new DM channel with a user. @param recipient_id [String, Integer] The ID of the recipient to open a DM with. @return [Hash<Symbol, Object>] The [DM channel](discord.com/developers/docs/resources/channel#channel-object)

object.

@vox.api_docs discord.com/developers/docs/resources/user#create-dm

# File lib/vox/http/routes/user.rb, line 83
def create_dm(recipient_id)
  request(Route.new(:POST, '/users/@me/channels'), json: { recipient_id: recipient_id })
end
create_group_dm(access_tokens, nicks: :undef) click to toggle source

Create a new DM with multiple users. @param access_tokens [Array<String, Integer>] Access tokens of users that have granted your app the `gdm.join`

scope.

@param nicks [Hash<(String, Integer), String>] A hash mapping user IDs to their nicknames. @note This endpoint was intended for a now deprecated SDK. DMs created with this endpoint are not

visible in the Discord client.

@note This endpoint is limited to 10 active group DMs. @vox.oauth_scope gdm.join @vox.api_docs discord.com/developers/docs/resources/user#create-group-dm

# File lib/vox/http/routes/user.rb, line 96
def create_group_dm(access_tokens, nicks: :undef)
  json = filter_undef({ access_tokens: access_tokens, nicks: nicks })
  request(Route.new(:POST, '/users/@me/channels'), json: json)
end
get_current_user() click to toggle source

Get information about the current user. @return [Hash<Symbol, Object>] The [user](discord.com/developers/docs/resources/user#user-object)

object for the current user.

@vox.oauth_scope identify @vox.api_docs discord.com/developers/docs/resources/user#get-current-user

# File lib/vox/http/routes/user.rb, line 20
def get_current_user
  request(Route.new(:GET, '/users/@me'))
end
get_current_user_guilds(before: :undef, after: :undef, limit: :undef) click to toggle source

List the guilds that the current user is in. @param before [String, Integer] Get guilds before this ID. @param after [String, Integer] Get guilds after this ID. @param limit [String, Integer] Maximum number of guilds to return. @return [Array<Hash<Symbol, Object>>] An array of [guild](discord.com/developers/docs/resources/guild#guild-object)

objects.

@vox.oauth_scope guilds @vox.api_docs discord.com/developers/docs/resources/user#get-current-user-guilds

# File lib/vox/http/routes/user.rb, line 57
def get_current_user_guilds(before: :undef, after: :undef, limit: :undef)
  params = filter_undef({ before: before, after: after, limit: limit })
  request(Route.new(:GET, '/users/@me/guilds'), query: params)
end
get_user(user_id) click to toggle source

Get information about a user by ID. @return [Hash<Symbol, Object] The [user](discord.com/developers/docs/resources/user#user-object)

object for the target user.

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

# File lib/vox/http/routes/user.rb, line 28
def get_user(user_id)
  request(Route.new(:GET, '/users/%{user_id}', user_id: user_id))
end
get_user_connections() click to toggle source

Get a list of connection objects for the current user. @return [Array<Hash<Symbol, Object>>] An array of [connection](discord.com/developers/docs/resources/user#connection-object)

objects.

@vox.oauth_scope connections @vox.api_docs discord.com/developers/docs/resources/user#get-user-connections

# File lib/vox/http/routes/user.rb, line 106
def get_user_connections
  request(Route.new(:GET, '/users/@me/connections'))
end
get_user_dms() click to toggle source

Get a list of the current user's DM channels. @return [Array<Hash<Symbol, Object>>] An array of [DM channel](discord.com/developers/docs/resources/channel#channel-object)

objects.

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

# File lib/vox/http/routes/user.rb, line 74
def get_user_dms
  request(Route.new(:GET, '/users/@me/channels'))
end
leave_guild(guild_id) click to toggle source

Leave a guild. @param guild_id [String, Integer] The ID of the guild to leave. @return [nil] Returns nil on success. @vox.api_docs discord.com/developers/docs/resources/user#get-current-user-guilds

# File lib/vox/http/routes/user.rb, line 66
def leave_guild(guild_id)
  request(Route.new(:DELETE, '/users/@me/guilds/%{guild_id}', guild_id: guild_id))
end
modify_current_user(username: :undef, avatar: :undef) click to toggle source

Modify the current user. @param username [String] @param avatar [UploadIO] @return [Hash<Symbol, Object>] The updated [user](discord.com/developers/docs/resources/user#user-object)

object.

@vox.api_docs discord.com/developers/docs/resources/user#modify-current-user

# File lib/vox/http/routes/user.rb, line 38
def modify_current_user(username: :undef, avatar: :undef)
  avatar = if avatar != :undef && !avatar.nil?
             image_data = avatar.io.read
             "data:#{avatar.content_type};base64,#{Base64.encode64(image_data)}"
           else
             :undef
           end
  json = filter_undef({ username: username, avatar: avatar })
  request(Route.new(:PATCH, '/users/@me'), json: json)
end