class BrokepointMiddleware

Public Class Methods

new(app) click to toggle source
# File lib/brokepoint.rb, line 6
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/brokepoint.rb, line 10
def call(env)
  begin
    status, headers, response = @app.call(env)
  rescue Exception => e
    Rails.logger.debug("exception has been noted")
    send_message_to_brokepoint(e.message, e.full_message)
    raise e
  end

  [status, headers, response]
end

Private Instance Methods

send_message_to_brokepoint(message, stacktrace) click to toggle source
# File lib/brokepoint.rb, line 24
def send_message_to_brokepoint(message, stacktrace)
  brokepoint_installation_address = URI.parse("#{ENV.fetch('BROKEPOINT_URL')}/events")
  headers = {'Content-Type': 'application/json'}

  error = {
    title: message,
    raw_body: stacktrace
  }

  Net::HTTP.post(brokepoint_installation_address, { event: error }.to_json, headers)
end