Class: PactBroker::Api::Resources::ErrorHandler

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/pact_broker/api/resources/error_handler.rb

Constant Summary

Constants included from Logging

Logging::LOG_DIR, Logging::LOG_FILE_NAME

Class Method Summary collapse

Methods included from Logging

included, #log_error, #logger, #logger=

Class Method Details

.call(e, request, response) ⇒ Object



11
12
13
14
15
16
# File 'lib/pact_broker/api/resources/error_handler.rb', line 11

def self.call e, request, response
  logger.error e
  logger.error e.backtrace
  response.body = {:message => e.message, :backtrace => e.backtrace }.to_json
  report e, request
end

.report(e, request) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/pact_broker/api/resources/error_handler.rb', line 18

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