# Move this require to your `config/application.rb` if you want to be notified from runner commands too.
require "exception_notification/rails"
require "exception_notification/rake"
<% if options.sidekiq? %>
require "exception_notification/sidekiq"<% end %><% if options.resque? %>
require "resque/failure/multiple"
require "resque/failure/redis"
require "exception_notification/resque"

Resque::Failure::Multiple.classes = [ Resque::Failure::Redis, ExceptionNotification::Resque ]
Resque::Failure.backend = Resque::Failure::Multiple<% end %>

ExceptionNotification.configure do |config|
  # Ignore additional exception types. The default list of exception classes is:
  #   ActiveRecord::RecordNotFound Mongoid::Errors::DocumentNotFound AbstractController::ActionNotFound
  #   ActionController::RoutingError ActionController::UnknownFormat ActionController::UrlGenerationError
  #   ActionDispatch::Http::MimeNegotiation::InvalidType Rack::Utils::InvalidParameterError
  # config.ignored_exceptions += %w[ActionView::TemplateError CustomError]

  # Adds a condition to decide when an exception must be ignored or not.
  # The ignore_if method can be invoked multiple times to add extra conditions.
  # config.ignore_if do |exception, options|
  #   Rails.env.local?
  # end

  # Ignore exceptions generated by crawlers
  # config.ignore_crawlers %w[Googlebot bingbot]

  # Notifiers =================================================================

  # Email notifier sends notifications by email.
  config.add_notifier :email, {
    email_prefix: "[ERROR] ",
    sender_address: %("Notifier" <notifier@example.com>),
    exception_recipients: %w[exceptions@example.com]
  }

  # Campfire notifier sends notifications to your Campfire room. Requires "tinder" gem.
  # config.add_notifier :campfire, {
  #   subdomain: "my_subdomain",
  #   token: "my_token",
  #   room_name: "my_room"
  # }

  # HipChat notifier sends notifications to your HipChat room. Requires "hipchat" gem.
  # config.add_notifier :hipchat, {
  #   api_token: "my_token",
  #   room_name: "my_room"
  # }

  # Webhook notifier sends notifications over HTTP protocol. Requires "httparty" gem.
  # config.add_notifier :webhook, {
  #   url: "http://example.com:5555/hubot/path",
  #   http_method: :post
  # }
end
