class CC::Service::ResponseCheck

Constants

ErrorStatuses

Public Instance Methods

on_complete(env) click to toggle source
# File lib/cc/service/response_check.rb, line 19
def on_complete(env)
  if ErrorStatuses === env[:status]
    message = error_message(env) ||
      "API request unsuccessful (#{env[:status]})"

    raise HTTPError.new(message, env)
  end
end

Private Instance Methods

error_message(env) click to toggle source
# File lib/cc/service/response_check.rb, line 30
def error_message(env)
  # We only handle Jira (or responses which look like Jira's). We will add
  # more logic here over time to account for other service's typical error
  # responses as we see them.
  if env[:response_headers]["content-type"] =~ /application\/json/
    errors = JSON.parse(env[:body])["errors"]
    errors.is_a?(Hash) && errors.values.map(&:capitalize).join(", ")
  end
rescue JSON::ParserError
end