Sha256: f9243e5b9934fc750bd4290d68b173214ab9bc8566eea74bb97d09d06b90cc1d

Contents?: true

Size: 1.04 KB

Versions: 9

Compression:

Stored size: 1.04 KB

Contents

require "pact_broker/configuration"
require "securerandom"

# Logs the error
# Reports the error
# Generates and returns response headers and response body

module PactBroker
  module Api
    module Resources
      class ErrorHandler
        include PactBroker::Logging

        def initialize(error_logger, error_response_generator, error_reporter)
          @error_logger = error_logger
          @error_response_generator = error_response_generator
          @error_reporter = error_reporter
        end

        def call(error, env, message = nil)
          error_reference = PactBroker::Errors.generate_error_reference

          # log error
          error_logger.call(error, error_reference, env)

          # report error
          error_reporter.call(error, error_reference, env)


          # generate response
          headers, body = error_response_generator.call(error, error_reference, env, message: message)
          headers.each { | key, value | response.headers[key] = value }
          return headers, body
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
pact_broker-2.114.0 lib/pact_broker/api/resources/error_handler.rb
pact_broker-2.113.2 lib/pact_broker/api/resources/error_handler.rb
pact_broker-2.113.1 lib/pact_broker/api/resources/error_handler.rb
pact_broker-2.113.0 lib/pact_broker/api/resources/error_handler.rb
pact_broker-2.112.0 lib/pact_broker/api/resources/error_handler.rb
pact_broker-2.111.0 lib/pact_broker/api/resources/error_handler.rb
pact_broker-2.109.1 lib/pact_broker/api/resources/error_handler.rb
pact_broker-2.109.0 lib/pact_broker/api/resources/error_handler.rb
pact_broker-2.108.0 lib/pact_broker/api/resources/error_handler.rb