class Honeybadger::CLI::Notify

def initialize(options, args, config)

def initialize(options, args, config)
  @options = options
  @args = args
  @config = config
  @shell = ::Thor::Base.shell.new
end

def option?(key)

def option?(key)
  options.has_key?(key) && options[key] != key
end

def run

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