Class: SleeperApi::Client
- Inherits:
-
Object
- Object
- SleeperApi::Client
- Includes:
- HTTParty, Helpers
- Defined in:
- lib/sleeper_api/client.rb
Overview
HTTP client for Sleeper API requests.
Handles all low-level HTTP calls, caching, retries, and error handling. Use via client or create directly.
Instance Method Summary collapse
-
#draft(draft_id) ⇒ SleeperApi::Draft
Create a new Draft instance.
-
#get_draft(draft_id) ⇒ Hash
Fetch draft details.
-
#get_draft_picks(draft_id) ⇒ Array<Hash>
Get draft picks.
-
#get_draft_traded_picks(draft_id) ⇒ Array<Hash>
Get traded draft picks for a draft.
-
#get_league(league_id) ⇒ Hash
Fetch league details.
-
#get_league_drafts(league_id) ⇒ Array<Hash>
Get league drafts.
-
#get_league_matchups(league_id, week) ⇒ Array<Hash>
Get matchups for a specific week.
-
#get_league_rosters(league_id) ⇒ Array<Hash>
Get all rosters in a league.
-
#get_league_traded_picks(league_id) ⇒ Array<Hash>
Get traded draft picks for a league.
-
#get_league_users(league_id) ⇒ Array<Hash>
Get all users in a league.
-
#get_nfl_state(sport = "nfl") ⇒ Hash
Get NFL state (week, season status).
-
#get_player_by_id(player_id, sport = "nfl") ⇒ Hash?
Get a specific player by ID.
-
#get_players(sport = "nfl") ⇒ Hash{String => Hash}
Get all player data (cached for 24 hours).
-
#get_playoff_bracket(league_id) ⇒ Array<Hash>
Get playoff winners bracket.
-
#get_toilet_bowl(league_id) ⇒ Array<Hash>
Get toilet bowl (losers bracket).
-
#get_transactions(league_id, week) ⇒ Array<Hash>
Get transactions for a specific week.
-
#get_user(identifier) ⇒ Hash
Fetch user data by identifier.
-
#get_user_drafts(user_id, sport: "nfl", season: Time.now.year) ⇒ Array<Hash>
Get drafts for a user in a specific season.
-
#get_user_leagues(user_id, sport: "nfl", season: Time.now.year) ⇒ Array<Hash>
Get leagues for a user in a specific season.
-
#initialize(config) ⇒ Client
constructor
A new instance of Client.
-
#league(league_id) ⇒ SleeperApi::League
Create a new League instance.
-
#trending_players(sport = "nfl", type: "add", lookback_hours: 24, limit: 25) ⇒ Array<Hash>
Get trending players.
-
#user(identifier) ⇒ SleeperApi::User
Create a new User instance.
Methods included from Helpers
#deep_symbolize_keys, #player_details
Constructor Details
#initialize(config) ⇒ Client
Returns a new instance of Client.
21 22 23 24 25 |
# File 'lib/sleeper_api/client.rb', line 21 def initialize(config) @config = config @players_cache = nil @cache_timestamp = nil end |
Instance Method Details
#draft(draft_id) ⇒ SleeperApi::Draft
Create a new Draft instance.
50 51 52 |
# File 'lib/sleeper_api/client.rb', line 50 def draft(draft_id) Draft.new(draft_id, self) end |
#get_draft(draft_id) ⇒ Hash
Fetch draft details.
173 174 175 |
# File 'lib/sleeper_api/client.rb', line 173 def get_draft(draft_id) make_request("/draft/#{draft_id}") end |
#get_draft_picks(draft_id) ⇒ Array<Hash>
Get draft picks.
182 183 184 |
# File 'lib/sleeper_api/client.rb', line 182 def get_draft_picks(draft_id) make_request("/draft/#{draft_id}/picks") end |
#get_draft_traded_picks(draft_id) ⇒ Array<Hash>
Get traded draft picks for a draft.
191 192 193 |
# File 'lib/sleeper_api/client.rb', line 191 def get_draft_traded_picks(draft_id) make_request("/draft/#{draft_id}/traded_picks") end |
#get_league(league_id) ⇒ Hash
Fetch league details.
90 91 92 |
# File 'lib/sleeper_api/client.rb', line 90 def get_league(league_id) make_request("/league/#{league_id}") end |
#get_league_drafts(league_id) ⇒ Array<Hash>
Get league drafts.
155 156 157 |
# File 'lib/sleeper_api/client.rb', line 155 def get_league_drafts(league_id) make_request("/league/#{league_id}/drafts") end |
#get_league_matchups(league_id, week) ⇒ Array<Hash>
Get matchups for a specific week.
118 119 120 |
# File 'lib/sleeper_api/client.rb', line 118 def get_league_matchups(league_id, week) make_request("/league/#{league_id}/matchups/#{week}") end |
#get_league_rosters(league_id) ⇒ Array<Hash>
Get all rosters in a league.
99 100 101 |
# File 'lib/sleeper_api/client.rb', line 99 def get_league_rosters(league_id) make_request("/league/#{league_id}/rosters") end |
#get_league_traded_picks(league_id) ⇒ Array<Hash>
Get traded draft picks for a league.
164 165 166 |
# File 'lib/sleeper_api/client.rb', line 164 def get_league_traded_picks(league_id) make_request("/league/#{league_id}/traded_picks") end |
#get_league_users(league_id) ⇒ Array<Hash>
Get all users in a league.
108 109 110 |
# File 'lib/sleeper_api/client.rb', line 108 def get_league_users(league_id) make_request("/league/#{league_id}/users") end |
#get_nfl_state(sport = "nfl") ⇒ Hash
Get NFL state (week, season status).
200 201 202 203 204 205 206 |
# File 'lib/sleeper_api/client.rb', line 200 def get_nfl_state(sport = "nfl") nfl_state = make_request("/state/#{sport}") nfl_state.each_with_object({}) do |(k, v), result| key = k.is_a?(String) ? k.to_sym : k result[key] = v end end |
#get_player_by_id(player_id, sport = "nfl") ⇒ Hash?
Get a specific player by ID.
241 242 243 |
# File 'lib/sleeper_api/client.rb', line 241 def get_player_by_id(player_id, sport = "nfl") get_players(sport)[player_id] end |
#get_players(sport = "nfl") ⇒ Hash{String => Hash}
Get all player data (cached for 24 hours).
225 226 227 228 229 230 231 232 233 |
# File 'lib/sleeper_api/client.rb', line 225 def get_players(sport = "nfl") return @players_cache if @players_cache && @cache_timestamp && (Time.now - @cache_timestamp) < (3600 * 24) response = make_request("/players/#{sport}") @players_cache = response.parsed_response @cache_timestamp = Time.now @players_cache end |
#get_playoff_bracket(league_id) ⇒ Array<Hash>
Get playoff winners bracket.
127 128 129 |
# File 'lib/sleeper_api/client.rb', line 127 def get_playoff_bracket(league_id) make_request("/league/#{league_id}/winners_bracket") end |
#get_toilet_bowl(league_id) ⇒ Array<Hash>
Get toilet bowl (losers bracket).
136 137 138 |
# File 'lib/sleeper_api/client.rb', line 136 def get_toilet_bowl(league_id) make_request("/league/#{league_id}/losers_bracket") end |
#get_transactions(league_id, week) ⇒ Array<Hash>
Get transactions for a specific week.
146 147 148 |
# File 'lib/sleeper_api/client.rb', line 146 def get_transactions(league_id, week) make_request("/league/#{league_id}/transactions/#{week}") end |
#get_user(identifier) ⇒ Hash
Fetch user data by identifier.
59 60 61 |
# File 'lib/sleeper_api/client.rb', line 59 def get_user(identifier) make_request("/user/#{identifier}") end |
#get_user_drafts(user_id, sport: "nfl", season: Time.now.year) ⇒ Array<Hash>
Get drafts for a user in a specific season.
81 82 83 |
# File 'lib/sleeper_api/client.rb', line 81 def get_user_drafts(user_id, sport: "nfl", season: Time.now.year) make_request("/user/#{user_id}/drafts/#{sport}/#{season}") end |
#get_user_leagues(user_id, sport: "nfl", season: Time.now.year) ⇒ Array<Hash>
Get leagues for a user in a specific season.
70 71 72 |
# File 'lib/sleeper_api/client.rb', line 70 def get_user_leagues(user_id, sport: "nfl", season: Time.now.year) make_request("/user/#{user_id}/leagues/#{sport}/#{season}") end |
#league(league_id) ⇒ SleeperApi::League
Create a new League instance.
32 33 34 |
# File 'lib/sleeper_api/client.rb', line 32 def league(league_id) League.new(league_id, self) end |
#trending_players(sport = "nfl", type: "add", lookback_hours: 24, limit: 25) ⇒ Array<Hash>
Get trending players.
216 217 218 |
# File 'lib/sleeper_api/client.rb', line 216 def trending_players(sport = "nfl", type: "add", lookback_hours: 24, limit: 25) make_request("/players/#{sport}/trending/#{type}?lookback_hours=#{lookback_hours}&limit=#{limit}") end |
#user(identifier) ⇒ SleeperApi::User
Create a new User instance.
41 42 43 |
# File 'lib/sleeper_api/client.rb', line 41 def user(identifier) User.new(identifier, self) end |