Sha256: d62999d19e809ea98cc5027b67806b6a4cfa25b81b640b8e06b5e04e52f7a992

Contents?: true

Size: 834 Bytes

Versions: 1

Compression:

Stored size: 834 Bytes

Contents

require 'httparty'

class XboxLeaders::Api

  include HTTParty
  base_uri 'https://www.xboxleaders.com/api/2.0'

  attr_accessor :timeout
  
  def initialize(timeout = 6)
    @timeout = timeout
  end

  def fetch_achievements(gamertag, game_id)
    get('/achievements', gamertag: gamertag, gameid: game_id)
  end

  def fetch_friends(gamertag)
    get('/friends', gamertag: gamertag)
  end
  
  def fetch_games(gamertag)
    get('/games', gamertag: gamertag)
  end

  def fetch_profile(gamertag)
    get('/profile', gamertag: gamertag)
  end

  private

  def get(path, query={})
    response = self.class.get(path + ".json", timeout: timeout, query: query).to_hash

    if response['status'] == 'error'
      raise ArgumentError, "#{response['data']['code']}: #{response['data']['message']}"
    end

    response['data']
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
xbox_leaders-2.0.0 lib/xbox_leaders/api.rb