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

Version Path
spree_api-4.8.3 app/services/spree/api/error_handler.rb
spree_api-4.8.2 app/services/spree/api/error_handler.rb
spree_api-4.7.3 app/services/spree/api/error_handler.rb
spree_api-4.6.6 app/services/spree/api/error_handler.rb
spree_api-4.5.5 app/services/spree/api/error_handler.rb
spree_api-4.2.7 app/services/spree/api/error_handler.rb
spree_api-4.3.3 app/services/spree/api/error_handler.rb
spree_api-4.4.1 app/services/spree/api/error_handler.rb
spree_api-4.5.4 app/services/spree/api/error_handler.rb
spree_api-4.6.5 app/services/spree/api/error_handler.rb
spree_api-4.7.2 app/services/spree/api/error_handler.rb
spree_api-4.7.1 app/services/spree/api/error_handler.rb
spree_api-4.6.4 app/services/spree/api/error_handler.rb
spree_api-4.7.0 app/services/spree/api/error_handler.rb
spree_api-4.6.3 app/services/spree/api/error_handler.rb
spree_api-4.6.2 app/services/spree/api/error_handler.rb
spree_api-4.6.1 app/services/spree/api/error_handler.rb
spree_api-4.6.0 app/services/spree/api/error_handler.rb
spree_api-4.5.3 app/services/spree/api/error_handler.rb
atkhayar-dev-spree-api-0.0.1 app/services/spree/api/error_handler.rb