class Kokkai::Error

Constants

ATTRIBUTES
BadRequest
ClientError
ERRORS

Attributes

code[R]

Public Class Methods

from_response(body) click to toggle source
# File lib/kokkai/error.rb, line 15
def from_response(body)
  message, code = parse_error(body)
  new(message, code)
end
new(message, code) click to toggle source
Calls superclass method
# File lib/kokkai/error.rb, line 39
def initialize(message, code)
  super(message)
  @code = code
end

Private Class Methods

extract_message_from_error(body) click to toggle source
# File lib/kokkai/error.rb, line 30
def extract_message_from_error(body)
  message = body.dig("details").nil? ? body.dig("message") : body.dig("details")
  message = message.first if message.is_a?(Array)
  match = message.match(/\([0-9]{5}\)/)
  [match.post_match, match[0].gsub(/\(|\)/, '').to_i]
end
parse_error(body) click to toggle source
# File lib/kokkai/error.rb, line 22
def parse_error(body)
  if body.nil?  || body.empty?
    ['', nil]
  elsif body.dig("data", "diagnostics")
    extract_message_from_error(body.dig(*ATTRIBUTES))
  end
end