Sha256: e7f9258ef197ea3b5033d9d287e55669bf0484dfcc3cfb26ff64e59a1eba2d16
Contents?: true
Size: 1.08 KB
Versions: 42
Compression:
Stored size: 1.08 KB
Contents
module Spree module Api class ErrorHandler prepend ::Spree::ServiceModule::Base def call(exception:, opts: {}) run :format_message run :log_error run :report_error end protected def format_message(exception:, opts:) message = if exception.respond_to?(:original_message) exception.original_message else exception.message end success(exception: exception, message: message, opts: opts) end def log_error(exception:, message:, opts:) Rails.logger.error message Rails.logger.error "User ID: #{opts[:user]&.id}" if opts[:user] Rails.logger.error exception.backtrace.join("\n") success(exception: exception, message: message, opts: opts) end def report_error(exception:, message:, opts:) # overwrite this method in your application to support different error handlers # eg. Sentry, Rollbar, etc success(exception: exception, message: message) end end end end
Version data entries
42 entries across 42 versions & 3 rubygems