class Destiny::Account

The Destiny::Account class is for acceessing information about a user's account via the Destiny API

Public Class Methods

new(client) click to toggle source
# File lib/destiny/account.rb, line 7
def initialize(client)
  @client = client
  @membership_id = nil
end

Public Instance Methods

details(membership_type, username) click to toggle source
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
items(membership_type, username) click to toggle source

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
membership_id_from_display_name(membership_type, display_name) click to toggle source

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
search_destiny_player(membership_type, display_name) click to toggle source

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
stats(membership_type, username) click to toggle source

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
summary(membership_type, username) click to toggle source

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

find_membership_type_from(membership_type) click to toggle source

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