class Gameball::Player

Public Class Methods

get_player_info(playerUniqueId) click to toggle source
# File lib/gameball/models/player.rb, line 25
def self.get_player_info(playerUniqueId)
  body = { playerUniqueId: playerUniqueId }
  body["hash"] = Gameball::Utils::hashBody(playerUniqueId: playerUniqueId)
  res = Gameball::Utils::request("post", "/integrations/Player/Info", body)
  # Check for HTTP Success and throws error if not success
  unless res.kind_of? Net::HTTPSuccess
    if res.kind_of? Net::HTTPInternalServerError
      raise Gameball::GameballError.new("An Internal Server Error has occurred")
    else
      raise Gameball::GameballError.new(res.body) 
    end
  else
    return res
  end
end
initialize_player(body) click to toggle source
# File lib/gameball/models/player.rb, line 3
def self.initialize_player(body)
  # Validating keys in incoming body
  Gameball::Utils.validate(body, ["playerAttributes", "playerUniqueId"], [])
  # .iso8601 Throws an exception if not invoked on a valid date object, so it is used to check if the dates are valid
  begin
    body[:playerAttributes][:joinDate] = body[:playerAttributes][:joinDate].iso8601
    body[:playerAttributes][:dateOfBirth] = body[:playerAttributes][:dateOfBirth].iso8601
  rescue NoMethodError => exception
    raise Gameball::GameballError.new("Invalid Date Format, Please use Time and Date objects")
  end
  # Check for HTTP Success and throws error if not success
  res = Gameball::Utils::request("post", "/integrations/player", body)
  unless res.kind_of? Net::HTTPSuccess
    if res.kind_of? Net::HTTPInternalServerError
      raise Gameball::GameballError.new("An Internal Server Error has occurred")
    else
      raise Gameball::GameballError.new(res.body) 
    end
  else
    return res
  end
end