module Grape::Formatter::GarError

Public Class Methods

call(message, backtrace, options, env) click to toggle source
# File lib/grape_ape_rails/handlers/formatters.rb, line 20
def self.call(message, backtrace, options, env)
  err = { error: { code: 'ERROR', message: message } }
  if message.is_a?(Hash) && message[:code].present? && message[:message].present?
    full_msg = "[#{message[:code]}] #{message[:message]}"
    err = { error: { code: message[:code], message: full_msg } }
    err[:error].merge!({ data: message[:data] }) if message[:data].present?
  elsif message.respond_to?(:error_code) && message.respond_to?(:message)
    full_msg = "[#{message.error_code}] #{message.message}"
    err = { error: { code: message.error_code, message: full_msg } }
  end
  MultiJson.dump err
end