class XboxLiveApi::Requests::ProfileRequest
Public Instance Methods
for(user_id)
click to toggle source
# File lib/xbox_live_api/requests/profile_request.rb, line 9 def for(user_id) resp = make_request(user_id) handle_response(resp, user_id) end
Private Instance Methods
collect_settings(settings)
click to toggle source
# File lib/xbox_live_api/requests/profile_request.rb, line 39 def collect_settings(settings) settings_hash = {} settings.each do |setting| settings_hash.store(setting['id'], setting['value']) end settings_hash end
handle_response(resp, user_id)
click to toggle source
# File lib/xbox_live_api/requests/profile_request.rb, line 25 def handle_response(resp, user_id) json = Oj.load(resp) settings = json['profileUsers'].first['settings'] settings_hash = collect_settings(settings) Profile.new(id: user_id, gamertag: settings_hash['Gamertag'], gamerscore: settings_hash['Gamerscore'].to_i, gamer_picture: settings_hash['GameDisplayPicRaw'], account_tier: settings_hash['AccountTier'], xbox_one_rep: settings_hash['XboxOneRep'], preferred_color_url: settings_hash['PreferredColor'], tenure_level: settings_hash['TenureLevel'].to_i) end
make_request(user_id)
click to toggle source
# File lib/xbox_live_api/requests/profile_request.rb, line 16 def make_request(user_id) url = 'https://profile.xboxlive.com/users/batch/profile/settings' params = { 'settings' => %w(Gamerscore Gamertag GameDisplayPicRaw AccountTier XboxOneRep PreferredColor TenureLevel), 'userIds' => [user_id] } HttpSessionGateway.new.post_json(url, header: header_for_version(Version::XBOX_ONE), body: params).body end