class Sports::Butler::Api
Attributes
api_name[RW]
errors[RW]
headers[RW]
parsed_response[RW]
query[RW]
response[RW]
response_code[RW]
sport[RW]
success[RW]
uri[RW]
url[RW]
Public Class Methods
get(url:, sport: nil, api_name: nil, filters: {}, headers: {})
click to toggle source
# File lib/sports/butler/api.rb, line 70 def get(url:, sport: nil, api_name: nil, filters: {}, headers: {}) if sport && api_name if Configuration.invalid_config?(sport, api_name) return Sports::Butler::ApiBase.invalid_config_result end headers = Configuration.http_party_headers(sport, api_name) url = Configuration.http_party_url_suffix(url, sport, api_name) end query = filters || {} HTTParty.get "#{url}", headers: headers, query: query, format: :json end
new(sport, api_name)
click to toggle source
# File lib/sports/butler/api.rb, line 12 def initialize(sport, api_name) @sport = sport @api_name = api_name @response = nil @success = false @errors = [] @response_code = nil end
Public Instance Methods
error_message(error)
click to toggle source
# File lib/sports/butler/api.rb, line 55 def error_message(error) { message: error }.with_indifferent_access end
get(path:, filters: {})
click to toggle source
# File lib/sports/butler/api.rb, line 23 def get(path:, filters: {}) if Configuration.invalid_config?(sport, api_name) @response = Sports::Butler::ApiBase.invalid_config_result @response_code = 400 return false end @response = process_http_party(path, filters) @response_code = response.code @success = true if response_code == 200 @parsed_response = process_response(response) @uri = response.request.last_uri&.to_s true end
http_party_get()
click to toggle source
# File lib/sports/butler/api.rb, line 59 def http_party_get HTTParty.get( "#{url}", headers: headers, query: query, format: :json ) end
process_http_party(path, filters)
click to toggle source
# File lib/sports/butler/api.rb, line 39 def process_http_party(path, filters) @headers = Configuration.http_party_headers(sport, api_name) @url = Configuration.http_party_url(path, sport, api_name) @query = filters || {} http_party_get end
process_response(response)
click to toggle source
# File lib/sports/butler/api.rb, line 47 def process_response(response) if response.parsed_response.is_a?(Hash) && response.dig('message') error_message(response['message']) else response.parsed_response end end