class GosuApi::Matchticker

Public Instance Methods

get_matches(game = nil, max_results = 25, offset = 0, date_from = nil, date_to = nil) click to toggle source

Fetch a list of matches

Attributes

  • game - The game you want to pull matches for

  • max_results - The max amount of results you want to pull

  • offset - The offset from where you want to start pulling data

  • date_from - From which date you’d like to start pulling data

  • date_to - Until which date you’d like to start pulling data

# File lib/gosu_api/matchticker.rb, line 19
def get_matches(game = nil, max_results = 25, offset = 0, date_from = nil, date_to = nil)
  method = 'matches'
  parameters = {}

  raise ArgumentError.new("Max results is out of range. This parameter should not exceed 25 results.") if max_results < 1 || max_results > 25
  raise ArgumentError.new("Offset is out of range.") if offset < 0

  if game
    raise ArgumentError.new("This game is not a part of the Gosu Matchticker API.") unless GosuApi::GAMES.has_key?(game.to_sym)
    parameters['game'] = GosuApi::GAMES[game.to_sym]
  end

  if date_from
    raise ArgumentError.new("The date_from provided should be in the DD-MM-YYYY format.") unless date_from.is_a?(DateTime)
    parameters['dateFrom'] = date_from.strftime("%d-%m-%Y")
  end

  if date_to
    raise ArgumentError.new("The date_to provided should be in the DD-MM-YYYY format.") unless date_to.is_a?(DateTime)
    parameters['dateTo'] = date_to.strftime("%d-%m-%Y")
  end

  parameters['maxResults'] = max_results
  parameters['offset'] = offset

  api_result = send_request(method, parameters)
  api_result["matches"]
end
send_request(method, parameters = {}) click to toggle source
# File lib/gosu_api/matchticker.rb, line 48
def send_request(method, parameters = {})
  parameters["apiKey"] = GosuApi.configuration.api_key
  result = RestClient.get "#{GosuApi::ENDPOINT}#{method}?#{URI.encode_www_form(parameters)}"
  case result.code
    when 200
      return JSON.parse result
    when 403
      raise GosuApi::Exception::ForbiddenError.new(result.to_str)
  end
end