Class: CollegiateDirectories
- Inherits:
-
Object
- Object
- CollegiateDirectories
- 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
-
#coaches_for(sport) ⇒ Object
Public: Return the coaches for a specific sport.
-
#initialize(token: ENV["COLLEGIATE_DIRECTORIES_TOKEN"]) ⇒ CollegiateDirectories
constructor
Public: Initialize the API client.
-
#sports ⇒ Object
Public: Return the sports the directory supports.
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 |
#sports ⇒ Object
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 |