beneggett/sportradar-api

View on GitHub
lib/sportradar/api.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "rubygems"
require "active_support/all"
require "httparty"

require "sportradar/api/version"

require "sportradar/api/config"
require "sportradar/api/data"
require "sportradar/api/error"
require "sportradar/api/request"
require "sportradar/api/poll"

require "sportradar/api/broadcast"

require "sportradar/api/soccer"
require "sportradar/api/football"
require "sportradar/api/basketball"
require "sportradar/api/baseball"


require "sportradar/api/live_images"
require "sportradar/api/images"
require "sportradar/api/images/asset_list"
require "sportradar/api/images/asset"
require "sportradar/api/images/link"
require "sportradar/api/images/ref"
require "sportradar/api/images/tag"

require "sportradar/api/mma"


require "sportradar/api/content"
require "sportradar/api/content/article_list"
require "sportradar/api/content/article"
require "sportradar/api/content/reference"
require "sportradar/api/odds"

module Sportradar
  module Api

    API_GALLERY = [
        {api: :nfl, version:  7},
        {api: :mlb, version:  7},
        {api: :nhl, version:  3},
        {api: :nba, version:  7},
        {api: :ncaamb, version:   3},
        {api: :ncaafb, version:   1},
        {api: :golf, version:   2},
        {api: :nascar, version:   3},
        {api: :odds, version:   2},
        {api: :content, version:  3},
        {api: :images, version:   3},
        {api: :live_images, version:  1},
        {api: :olympics, version:   2},
        {api: :soccer, version:   4},
        {api: :ncaawb, version:   3},
        {api: :mma, version:  2},
        {api: :cricket, version:    1},
        {api: :wnba, version:   3},
        {api: :ncaamh, version:   3},
        {api: :npb, version:  1},
        {api: :rugby, version:  1},
        {api: :tennis, version:   1},
        {api: :esports, version:  1}
      ]


    private

    def self.api_key_params(api, access_level = 'trial')
      { api_key: self.api_key(api, access_level) }
    end

    def self.api_key(api, access_level = 'trial')
      ENV.fetch("SPORTRADAR_#{api.to_s.upcase.gsub('-', '_')}#{"_#{access_level.upcase}" if access_level != 'trial'}",
        ENV.fetch("SPORTRADAR_#{api.to_s.upcase}_API_KEY",
          ENV.fetch("SPORTRADAR_#{api.to_s.upcase}",
            "api_key missing for #{api}"
          )
        )
      )
    end

    def self.version(api)
      find_api = API_GALLERY.find{ |x| x[:api] == api.downcase.to_sym }
      !find_api.nil? ? find_api[:version] : "version missing for #{api}"
    end

  end

  def self.ordinalize_period(i)
    case i
    when 1
      '1st'
    when 2
      '2nd'
    when 3
      '3rd'
    when nil
      ''
    else
      "#{i}th"
    end
  end

end