Class: Jumbotron::Adapters::Espn::Nfl

Inherits:
Base
  • Object
show all
Defined in:
app/adapters/jumbotron/adapters/espn/nfl.rb

Constant Summary collapse

TERMINAL_LIFECYCLES =
%w[completed cancelled].freeze
INTERRUPTED_LIFECYCLES =
%w[postponed suspended].freeze

Class Method Summary collapse

Methods inherited from Base

adapter_id, discoveries, discovery, discovery_ids, endpoint, endpoints, league, operation, policies, policy, policy_ids, provider, register!, registered?, registry_key, sport

Methods included from LineAcquisition

#acquire_line_odds, #line_acquisition_scope_for, #translate_line_odds

Class Method Details

.acquire_line_odds(acquisition) ⇒ Object



126
127
128
129
130
131
132
133
134
135
# File 'app/adapters/jumbotron/adapters/espn/nfl.rb', line 126

def self.acquire_line_odds(acquisition)
  parts = acquisition.respond_to?(:to_h) ? acquisition.to_h : {}
  parts = parts.symbolize_keys
  Providers::Espn::Resources::CompetitionOdds.acquire(
    sport: sport,
    league: league,
    event_id: parts.fetch(:event_id),
    competition_id: parts.fetch(:competition_id)
  )
end

.acquisition_scope_for(game) ⇒ Object



118
119
120
# File 'app/adapters/jumbotron/adapters/espn/nfl.rb', line 118

def self.acquisition_scope_for(game)
  NflHelpers::AcquisitionScope.call(game)
end

.line_acquisition_scope_for(game) ⇒ Object



122
123
124
# File 'app/adapters/jumbotron/adapters/espn/nfl.rb', line 122

def self.line_acquisition_scope_for(game)
  NflHelpers::LineAcquisitionScope.call(game)
end

.provider_cooling_down?Boolean

Returns:

  • (Boolean)


148
149
150
# File 'app/adapters/jumbotron/adapters/espn/nfl.rb', line 148

def self.provider_cooling_down?
  Providers::Espn::Cooldown.new.cooling_down?
end

.provider_retry_afterObject



152
153
154
# File 'app/adapters/jumbotron/adapters/espn/nfl.rb', line 152

def self.provider_retry_after
  Providers::Espn::Cooldown.new.retry_after
end

.scopes_for_discovery(definition) ⇒ Object



156
157
158
159
160
161
162
163
164
165
# File 'app/adapters/jumbotron/adapters/espn/nfl.rb', line 156

def self.scopes_for_discovery(definition)
  unless definition.endpoint == :scoreboard
    raise ConfigurationError, "#{name} discovery #{definition.id} uses unsupported endpoint"
  end

  Providers::Espn::Resources::Scoreboard.expand_full_season(
    adapter: self,
    season_year: Time.current.utc.year
  )
end

.translate_line_odds(odds, observed_at:, acquisition:) ⇒ Object



137
138
139
140
141
142
143
144
145
146
# File 'app/adapters/jumbotron/adapters/espn/nfl.rb', line 137

def self.translate_line_odds(odds, observed_at:, acquisition:)
  parts = acquisition.respond_to?(:to_h) ? acquisition.to_h : {}
  parts = parts.symbolize_keys
  NflHelpers::CompetitionOdds.call(
    odds,
    observed_at: observed_at,
    event_id: parts.fetch(:event_id),
    competition_id: parts.fetch(:competition_id)
  )
end