Slide 83
Slide 83 text
module NFLData
class Client
def initialize(api_key:, fetcher: default_fetcher)
@api_key = api_key
@fetcher = fetcher
end
def team_data(team_name:, metadata_adder: NFLData::Metadata::Team)
url = "http://nfl.com/api/v1/teams/#{team_name}?api_key=#{api_key}"
data = fetcher.call(url)
metadata_adder.call(data: data)
end
def game_data(team1:, team2:, date:, metadata_adder: NFLData::Metadata::Game)
url =
“http://nfl.com/api/v1/games/#{date}?teams=#{team1},#{team2}
&api_key=#{api_key}"
data = fetcher.call(url)
metadata_adder.call(data: data)
end
private
attr_reader :api_key, :fetcher
def default_fetcher
end
end