class PUBG::Client

Public Class Methods

new(api_key=nil, platform_region="xbox-na") click to toggle source
# File lib/pubg/client.rb, line 6
    def initialize(api_key=nil, platform_region="xbox-na")
  # TODO: raise error if api_key nil
  $api_key = api_key || ENV["PUBG_API_KEY"]
  $platform_region = platform_region || ENV["PUBG_PLATFORM_REGION"]
end
request(path) click to toggle source
# File lib/pubg/client.rb, line 54
  def self.request(path)
          request = Typhoeus.get(
                    [$base_url, path].join(""),
                    headers: { 
    Accept: "application/vnd.api+json",
    Authorization: "Bearer #{$api_key}" 
  }
                  )

response = Oj.load(request.body)

case request.code
when 404
  raise PUBError.new(response["errors"][0]["title"])
when 429
  raise PUBError.new("RateLimit-Limit reached")
end

return response
  end

Public Instance Methods

api_key() click to toggle source
# File lib/pubg/client.rb, line 12
def api_key
  $api_key
end
match(platform_region=$platform_region, match_id) click to toggle source
# File lib/pubg/client.rb, line 35
def match(platform_region=$platform_region, match_id)
  path = "/shards/#{platform_region}/matches/#{match_id}"
  PUBG::Match.new(Client.request(path))
end
platform_region() click to toggle source
# File lib/pubg/client.rb, line 16
def platform_region
  $platform_region
end
player(platform_region=$platform_region, player_id) click to toggle source
# File lib/pubg/client.rb, line 20
def player(platform_region=$platform_region, player_id)
  path = "/shards/#{platform_region}/players/#{player_id}"
  PUBG::Player.new(Client.request(path))
end
players(platform_region=$platform_region, items) click to toggle source
# File lib/pubg/client.rb, line 25
def players(platform_region=$platform_region, items)
  if items.include?("account.")
    params = "?filter[playerIds]=#{items}"
  else
    params = "?filter[playerNames]=#{items}"
  end
  path = "/shards/#{platform_region}/players#{params}"
  PUBG::Player.new(Client.request(path), true)
end
seasons(platform_region=$platform_region) click to toggle source
# File lib/pubg/client.rb, line 44
def seasons(platform_region=$platform_region)
  path = "/shards/#{platform_region}/seasons"
  PUBG::Seasons.new(Client.request(path))
end
status() click to toggle source
# File lib/pubg/client.rb, line 49
def status
  path = "/status"
  PUBG::Status.new(Client.request(path))
end
telemetry(url) click to toggle source
# File lib/pubg/client.rb, line 40
def telemetry(url)
  PUBG::Telemetry.new(telemetry_request(url))
end
telemetry_request(url) click to toggle source
# File lib/pubg/client.rb, line 75
def telemetry_request(url)
  request = Typhoeus.get(
    url,
    headers: { 
      Accept: "application/vnd.api+json"
    }
  )

  response = Oj.load(request.body)

  case request.code
  when 404, 403
    raise PUBError.new("Cant find telemetry file")
  when 500
    raise PUBError.new("Server error")
  end

  return response
end