module Vox::HTTP::Routes::User
Mixin for user routes.
Public Instance Methods
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 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 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
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 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 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 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 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 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