class Helium::Error

Custom error class for rescuing from Helium API errors

Public Class Methods

from_response(response) click to toggle source

Returns the appropriate Helium::Error subclass based on status and response message

@param [Typhoeus::Response] response @return [Helium::Error]

# File lib/helium/error.rb, line 10
def self.from_response(response)
  status  = response.code
  # Default the error message in the case of no error body
  message = if response.body && response.body.length >= 2
              JSON.parse(response.body)["errors"].first["detail"]
            else
              "Unknown error with code: #{response.code}"
            end

  klass =  case status
           when 401   then Helium::InvalidApiKey
           else self
           end

  klass.new(message)
end