class PactBroker::Api::Resources::ErrorHandler

Public Class Methods

new(error_logger, error_response_generator, error_reporter) click to toggle source
# File lib/pact_broker/api/resources/error_handler.rb, line 14
def initialize(error_logger, error_response_generator, error_reporter)
  @error_logger = error_logger
  @error_response_generator = error_response_generator
  @error_reporter = error_reporter
end

Public Instance Methods

call(error, env, message = nil) click to toggle source
# File lib/pact_broker/api/resources/error_handler.rb, line 20
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