def run
payload = {
api_key: config.get(:api_key),
notifier: NOTIFIER,
error: {
class: options['class'],
message: options['message']
},
request: {},
server: {
project_root: Dir.pwd,
environment_name: config.get(:env),
time: Time.now,
stats: Util::Stats.all
}
}
payload[:error][:fingerprint] = Digest::SHA1.hexdigest(options['fingerprint']) if option?('fingerprint')
payload[:error][:tags] = options['tags'].to_s.strip.split(',').map(&:strip) if option?('tags')
payload[:request][:component] = options['component'] if option?('component')
payload[:request][:action] = options['action'] if option?('action')
payload[:request][:url] = options['url'] if option?('url')
payload.delete(:request) if payload[:request].empty?
response = config.backend.notify(:notices, payload)
if response.success?
say("Error notification complete.", :green)
else
say(error_message(response), :red)
exit(1)
end
end