class JsonApiClient::Errors::ApiError

Attributes

env[R]

Public Class Methods

new(env, msg = nil) click to toggle source
Calls superclass method
# File lib/json_api_client/errors.rb, line 8
def initialize(env, msg = nil)
  @env = env
  # Try to fetch json_api errors from response
  msg = track_json_api_errors(msg)

  super msg
end

Private Instance Methods

track_json_api_errors(msg) click to toggle source

Try to fetch json_api errors from response

# File lib/json_api_client/errors.rb, line 19
def track_json_api_errors(msg)
  return msg unless env.try(:body).kind_of?(Hash) || env.body.key?('errors')

  errors_msg = env.body['errors'].map { |e| e['title'] }.compact.join('; ').presence
  return msg unless errors_msg

  msg.nil? ? errors_msg : "#{msg} (#{errors_msg})"
  # Just to be sure that it is back compatible
rescue StandardError
  msg
end