Sha256: ef3ed46b70e5250462667945ce212aea818ae444ebba0631034580b0283246b5

Contents?: true

Size: 766 Bytes

Versions: 2

Compression:

Stored size: 766 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, env
      PactBroker.configuration.api_error_reporters.each do | error_notifier |
        begin
          error_notifier.call(error, env: env, error_reference: error_reference)
        rescue StandardError => e
          log_error(e, "Error executing api_error_reporter")
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pact_broker-2.81.0 lib/pact_broker/errors.rb
pact_broker-2.80.0 lib/pact_broker/errors.rb