Module: Jumbotron::Providers::Espn::ProviderFailure

Defined in:
app/providers/jumbotron/providers/espn/provider_failure.rb

Class Method Summary collapse

Class Method Details

.availability_failure?(error) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
15
16
# File 'app/providers/jumbotron/providers/espn/provider_failure.rb', line 9

def availability_failure?(error)
  return false unless error.is_a?(CommandTower::Clients::Errors::UpstreamError)

  return true if server_error_status?(error)
  return true if transport_cause?(error.cause)

  false
end

.server_error_status?(error) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
# File 'app/providers/jumbotron/providers/espn/provider_failure.rb', line 18

def server_error_status?(error)
  status = error.details.is_a?(Hash) ? error.details[:status] : nil
  status.is_a?(Integer) && status >= 500
end

.transport_cause?(cause) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/providers/jumbotron/providers/espn/provider_failure.rb', line 23

def transport_cause?(cause)
  return false if cause.nil?
  return true if cause.is_a?(CommandTower::Clients::Transport::Error)
  return true if defined?(Faraday) && cause.is_a?(Faraday::Error)
  return true if cause.is_a?(Timeout::Error)
  return true if cause.is_a?(SocketError)
  return true if cause.is_a?(Errno::ECONNREFUSED)
  return true if cause.is_a?(Errno::ECONNRESET)
  return true if cause.is_a?(Errno::ETIMEDOUT)
  return true if cause.is_a?(Net::OpenTimeout)
  return true if cause.is_a?(Net::ReadTimeout)

  false
end