Sha256: 7016c8e55f5b876bb0cf485fd33c26278e412af827cc1da5cb39cf48d5213d1c

Contents?: true

Size: 724 Bytes

Versions: 3

Compression:

Stored size: 724 Bytes

Contents

class StripeModelCallbacks::BaseService < ServicePattern::Service
  def self.reported_execute!(*args, &blk)
    with_exception_notifications do
      response = execute(*args, &blk)
      raise response.errors.join(". ") unless response.success?

      return response
    end
  end

  def self.with_exception_notifications
    yield
  rescue => e # rubocop:disable Style/RescueStandardError
    Rails.logger.error "ERROR: #{e.message}"

    cleaned = Rails.backtrace_cleaner.clean(e.backtrace)
    if cleaned.any?
      Rails.logger.error cleaned
    else
      Rails.logger.error e.backtrace.join("\n")
    end

    ExceptionNotifier.notify_exception(e) if Object.const_defined?("ExceptionNotifier")
    raise e
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
stripe_model_callbacks-0.1.2 app/services/stripe_model_callbacks/base_service.rb
stripe_model_callbacks-0.1.1 app/services/stripe_model_callbacks/base_service.rb
stripe_model_callbacks-0.1.0 app/services/stripe_model_callbacks/base_service.rb