class Destiny::Account
The Destiny::Account
class is for acceessing information about a user's account via the Destiny
API
Public Class Methods
# File lib/destiny/account.rb, line 7 def initialize(client) @client = client @membership_id = nil end
Public Instance Methods
- Deprecated
-
Returns
Destiny
account information for the supplied
membership. This endpoint has been deprecated. Please use `summary` instead, pretty please with sugar on top. Seriously, we'll be BFFs 4 evah. Plus you can get at vault info without being logged in as that person, how cool is that?
@param membership_type [Symbol] :psn or :xbox_live @param username [Fixnum, String] The members username / display name @return [Hash] A hash representation of the user's account.
# File lib/destiny/account.rb, line 21 def details(membership_type, username) num_membership_type = find_membership_type_from membership_type membership_id_from_display_name num_membership_type, username if @membership_id.nil? response = @client.get "Destiny/#{num_membership_type}/Account/"\ "#{@membership_id}" Destiny::Client.validate response end
Returns information about all items for the supplied Destiny
Membership ID and a minimal set of character information so that it can be used.
@param membership_type [Symbol] :psn or :xbox_live @param username [Fixnum, String] The members username / display name @return [Hash] A hash representation of the user's items.
# File lib/destiny/account.rb, line 35 def items(membership_type, username) num_membership_type = find_membership_type_from membership_type membership_id_from_display_name num_membership_type, username if @membership_id.nil? response = @client.get "Destiny/#{num_membership_type}/Account/"\ "#{@membership_id}/Items" Destiny::Client.validate response end
Returns the numerical id of a player based on their display name, zero if not found.
@param membership_type [Symbol] :psn or :xbox_live @param display_name [String] The user's Gamertag or PSN username. @return [Hash] A hash containing the membership ID
# File lib/destiny/account.rb, line 49 def membership_id_from_display_name(membership_type, display_name) num_membership_type = find_membership_type_from membership_type response = @client.get "Destiny/#{num_membership_type}/Stats/"\ "GetMembershipIdByDisplayName/#{display_name}" response = Destiny::Client.validate response @membership_id ||= response['Response'] response end
Returns a list of Destiny
memberships given a full Gamertag or PSN ID
@param membership_type [Symbol] :psn or :xbox_live @param display_name [String] The user's Gamertag or PSN username. @return [Hash] A hash representation of the destiny player(s) found.
# File lib/destiny/account.rb, line 64 def search_destiny_player(membership_type, display_name) num_membership_type = find_membership_type_from membership_type response = @client.get "Destiny/SearchDestinyPlayer/#{num_membership_type}"\ "/#{display_name}" response = Destiny::Client.validate response @membership_id ||= response['Response'][0]['membershipId'] response end
Gets aggregate historical stats organized around each character for a given account.
@param membership_type [Symbol] :psn or :xbox_live @param username [Fixnum, String] The members username / display name @return [Hash] A hash representation of the user's aggregate statistics.
# File lib/destiny/account.rb, line 96 def stats(membership_type, username) num_membership_type = find_membership_type_from membership_type membership_id_from_display_name num_membership_type, username if @membership_id.nil? response = @client.get "Destiny/Stats/Account/#{num_membership_type}/"\ "#{@membership_id}" Destiny::Client.validate response end
Returns Destiny
account information for the supplied membership in a compact summary form. Will return vault information even if you're not that account. Don't you want to be a cool kid and use this service instead of GetAccount?
@param membership_type [Symbol] :psn or :xbox_live @param username [Fixnum, String] The members username / display name @return [Hash] A hash representation of the user's account.
# File lib/destiny/account.rb, line 82 def summary(membership_type, username) num_membership_type = find_membership_type_from membership_type membership_id_from_display_name num_membership_type, username if @membership_id.nil? response = @client.get "Destiny/#{num_membership_type}/Account/"\ "#{@membership_id}/Summary" Destiny::Client.validate response end
Private Instance Methods
This method is used to convert an unknown type (string, symbol, fixnum) of membership into the numeric value needed to interact with the Destiny
API.
@param membership_type [#to_sym, Fixnum] The membership type (either PSN
or Xbox Live)
@return [Fixnum] The numeric representation of the player's member network
# File lib/destiny/account.rb, line 112 def find_membership_type_from(membership_type) if membership_type.respond_to? :to_sym key = membership_type.to_sym num_membership_type = Destiny::MEMBERSHIP_TYPES[key] elsif membership_type.class == Fixnum num_membership_type = membership_type else raise 'Unknown membership type found. Please use :psn or :xbox_live' end num_membership_type end