class XboxLiveApi::Requests::Xbox360AchievementRequest

Public Instance Methods

for(user_id, game) click to toggle source
# File lib/xbox_live_api/requests/xbox_360_achievement_request.rb, line 9
def for(user_id, game)
  @parser = JsonParsers::Xbox360AchievementJsonParser.new
  unlocked_achievements = get_unlocked_achievements(game, user_id)
  all_achievements = get_all_achievements(game, user_id)
  combine_achievements(all_achievements, unlocked_achievements)
end

Private Instance Methods

combine_achievements(all_achievements, unlocked_achievements) click to toggle source
# File lib/xbox_live_api/requests/xbox_360_achievement_request.rb, line 33
def combine_achievements(all_achievements, unlocked_achievements)
  unlocked_ids = unlocked_achievements.collect(&:id)
  all_achievements.reject! { |achievement| unlocked_ids.include?(achievement.id) }
  unlocked_achievements + all_achievements
end
get_achievements(url) click to toggle source
# File lib/xbox_live_api/requests/xbox_360_achievement_request.rb, line 28
def get_achievements(url)
  json = HttpSessionGateway.new.get(url, header: header_for_version(Version::XBOX_360)).body
  @parser.parse_achievements_from(json)
end
get_all_achievements(game, user_id) click to toggle source
# File lib/xbox_live_api/requests/xbox_360_achievement_request.rb, line 23
def get_all_achievements(game, user_id)
  url = "https://achievements.xboxlive.com/users/xuid(#{user_id})/titleachievements?titleId=#{game.id}"
  get_achievements(url)
end
get_unlocked_achievements(game, user_id) click to toggle source
# File lib/xbox_live_api/requests/xbox_360_achievement_request.rb, line 18
def get_unlocked_achievements(game, user_id)
  url = "https://achievements.xboxlive.com/users/xuid(#{user_id})/achievements?titleId=#{game.id}"
  get_achievements(url)
end