Sha256: 18a4ae6d655e6b16b0064b2ce7f7ab5845f9e9ae088e56ac9d1bbb3d22437be4

Contents?: true

Size: 778 Bytes

Versions: 9

Compression:

Stored size: 778 Bytes

Contents

require 'pact_broker/configuration'
require 'pact_broker/error'
require 'pact_broker/logging'
require 'securerandom'

module PactBroker
  module Errors
    include PactBroker::Logging

    def self.generate_error_reference
      SecureRandom.urlsafe_base64.gsub(/[^a-z]/i, '')[0,10]
    end

    def self.reportable_error?(error)
      !error.is_a?(PactBroker::Error) && !error.is_a?(JSON::JSONError)
    end

    def self.report error, error_reference, request
      PactBroker.configuration.api_error_reporters.each do | error_notifier |
        begin
          error_notifier.call(error, env: request.env, error_reference: error_reference)
        rescue StandardError => e
          log_error(e, "Error executing api_error_reporter")
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
pact_broker-2.79.1 lib/pact_broker/errors.rb
pact_broker-2.79.0 lib/pact_broker/errors.rb
pact_broker-2.78.1 lib/pact_broker/errors.rb
pact_broker-2.78.0 lib/pact_broker/errors.rb
pact_broker-2.77.0 lib/pact_broker/errors.rb
pact_broker-2.76.2 lib/pact_broker/errors.rb
pact_broker-2.76.1 lib/pact_broker/errors.rb
pact_broker-2.76.0 lib/pact_broker/errors.rb
pact_broker-2.75.0 lib/pact_broker/errors.rb