class Attio::Error

Base error class for all Attio-specific errors

def extract_request_id(response)

def extract_request_id(response)
  return nil unless response[:headers]
  response[:headers]["x-request-id"] || response[:headers]["X-Request-Id"]
end

def initialize(message, response = nil)

def initialize(message, response = nil)
  @response = response
  if response
    @code = response[:status]
    @request_id = extract_request_id(response)
    # Try to extract a better error message from the response
    if response[:body].is_a?(Hash)
      api_message = response[:body][:error] || response[:body][:message]
      message = "#{message}: #{api_message}" if api_message
    end
  end
  super(message)
end