Sha256: 88ea40b3845fe89bc4a8c6d92ac86677af7712f36cecd701c6df9486f3daaed6

Contents?: true

Size: 786 Bytes

Versions: 1

Compression:

Stored size: 786 Bytes

Contents

require 'httparty'

class XboxLeaders::Api

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

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

  def fetch_achievements(gamertag, game_id)
    get('/achievements', gamertag: gamertag, titleid: 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, timeout: timeout, query: query).to_hash

    if error = response['error']
      raise ArgumentError, error['message']
    end

    response['Data']
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

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