class Sports::Butler::Configuration

Constants

AVAILABLE_APIS

APIs

AVAILABLE_SPORTS

Sports

AVAILABLE_SPORT_API

Attributes

api_base_url[RW]
api_token[RW]
header_additional[RW]
header_token_name[RW]

Public Class Methods

configure() { |self| ... } click to toggle source
# File lib/sports/butler/configuration.rb, line 27
def configure
  raise "You need to configure sports-butler first, see readme." unless block_given?

  yield self

  @api_token  ||= default_api_hash
  @api_base_url  ||= default_api_hash

  @header_token_name ||= set_header_token_name
  @header_additional ||= {}

end
default_api_hash() click to toggle source
# File lib/sports/butler/configuration.rb, line 40
def default_api_hash
  { soccer: {}, basketball: {} }
end
http_party_headers(sport, api_name) click to toggle source
# File lib/sports/butler/configuration.rb, line 79
def http_party_headers(sport, api_name)
  result = case api_name

           # SOCCER
           when :apifootball_com
             {}
           when :football_data_org, :api_football_com
             { Configuration.header_token_name[sport][api_name] => Configuration.api_token[sport][api_name] }

           # BASKETBALL
           when :api_basketball_com
             { Configuration.header_token_name[sport][api_name] => Configuration.api_token[sport][api_name] }
           end

  result.merge!(Configuration.header_additional)
  result
end
http_party_url(path, sport, api_name) click to toggle source
# File lib/sports/butler/configuration.rb, line 61
def http_party_url(path, sport, api_name)
  case api_name
  when :apifootball_com
    "#{Configuration.api_base_url[sport][api_name]}?#{path}&APIkey=#{Configuration.api_token[sport][api_name]}"
  else
    "#{Configuration.api_base_url[sport][api_name]}/#{path}"
  end
end
http_party_url_suffix(url, sport, api_name) click to toggle source
# File lib/sports/butler/configuration.rb, line 70
def http_party_url_suffix(url, sport, api_name)
  case api_name
  when :apifootball_com
    "#{url}&APIkey=#{Configuration.api_token[sport][api_name]}"
  else
    "#{url}"
  end
end
invalid_config?(sport, api_name) click to toggle source
# File lib/sports/butler/configuration.rb, line 56
def invalid_config?(sport, api_name)
  Configuration.api_token[sport][api_name].blank? ||
    !Configuration.valid_sport_api?(sport, api_name)
end
set_header_token_name() click to toggle source
# File lib/sports/butler/configuration.rb, line 44
def set_header_token_name
  {
    soccer: {
      football_data_org: 'X-Auth-Token',
      api_football_com: 'x-apisports-key'
    },
    basketball: {
      api_basketball_com: 'x-apisports-key'
    }
  }
end
valid_sport_api?(sport, api_name) click to toggle source
# File lib/sports/butler/configuration.rb, line 97
def valid_sport_api?(sport, api_name)
  AVAILABLE_SPORT_API[sport]&.any?{|name| name == api_name}
end