Sha256: 498a8d7aaf31805177ed4ae94fb82e7623849106f406bff3ce3426761c3fa74b
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 KB
Contents
module Grape module ErrorFormatter module ActiveModelSerializers extend Base class << self def call(message, backtrace, options = {}, env = nil, original_exception = nil) message = present(message, env) if respond_to?(:present) message = wrap_message(message) rescue_options = options[:rescue_options] || {} if rescue_options[:backtrace] && backtrace && !backtrace.empty? message = message.merge(backtrace: backtrace) end if rescue_options[:original_exception] && original_exception message = message .merge(original_exception: original_exception.inspect) end if ::Grape.const_defined? :Json ::Grape::Json.dump(message) else ::MultiJson.dump(message) end end private def wrap_message(message) if active_model?(message) ::ActiveModelSerializers::SerializableResource.new( message, serializer: ActiveModel::Serializer::ErrorSerializer ).as_json elsif ok_to_pass_through?(message) message else { error: message } end end def active_model?(message) message.respond_to?(:errors) && message.errors.is_a?(ActiveModel::Errors) end def ok_to_pass_through?(message) message.is_a?(Exceptions::ValidationErrors) || message.is_a?(Hash) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
grape-active_model_serializers-1.5.2 | lib/grape-active_model_serializers/error_formatter.rb |