Class: CollegiateDirectories

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/collegiate_directories.rb,
lib/collegiate_directories/version.rb

Overview

Public: Interact with the Collegiate Directories API.

Defined Under Namespace

Classes: ApiError, SportNotFound

Constant Summary collapse

CHECK_RESPONSE =

Public: Check a response for validity.

response - Object representing the response.

Raises ApiError on error.

lambda do |response|
  begin
    response.fetch("ResultCode").nonzero? &&
      raise(ApiError, response["Message"])
  rescue KeyError, NoMethodError
    raise ApiError, "Incomplete response"
  end
end
VERSION =
"0.1.1".freeze

Instance Method Summary collapse

Constructor Details

#initialize(token: ENV["COLLEGIATE_DIRECTORIES_TOKEN"]) ⇒ CollegiateDirectories

Public: Initialize the API client.

token - A String containing the API token (default:

COLLEGIATE_DIRECTORIES_TOKEN environment variable).


35
36
37
# File 'lib/collegiate_directories.rb', line 35

def initialize(token: ENV["COLLEGIATE_DIRECTORIES_TOKEN"])
  @default_opts = { body: token.to_json }
end

Instance Method Details

#coaches_for(sport) ⇒ Object

Public: Return the coaches for a specific sport.

sport - The Integer ID of the sport or the String name of the sport.

Returns Hash. Raises CollegiateDirectories::ApiError on error.



45
46
47
48
49
50
# File 'lib/collegiate_directories.rb', line 45

def coaches_for(sport)
  sport = sport_to_api(sport)

  response = self.class.post("/Coaches?sportId=#{sport}", @default_opts)
  response.parsed_response.tap(&CHECK_RESPONSE)
end

#sportsObject

Public: Return the sports the directory supports.

Returns Hash. Raises CollegiateDirectories::ApiError on error.



56
57
58
59
# File 'lib/collegiate_directories.rb', line 56

def sports
  response = self.class.post("/Sports", @default_opts)
  response.parsed_response.tap(&CHECK_RESPONSE)
end