Class: SolidQueueGuard::Notifier

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_queue_guard/notifier.rb

Class Method Summary collapse

Class Method Details

.deliver(adapter, report) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/solid_queue_guard/notifier.rb', line 12

def deliver(adapter, report)
  case adapter.to_sym
  when :slack then deliver_slack(report)
  when :datadog then deliver_datadog(report)
  when :webhook then deliver_webhook(report)
  else deliver_rails_logger(report)
  end
end

.deliver_all(report, adapters: SolidQueueGuard.config.notify_with) ⇒ Object



6
7
8
9
10
# File 'lib/solid_queue_guard/notifier.rb', line 6

def deliver_all(report, adapters: SolidQueueGuard.config.notify_with)
  Array(adapters).each do |adapter|
    deliver(adapter, report)
  end
end

.post_json(url, payload, headers: {}) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/solid_queue_guard/notifier.rb', line 21

def post_json(url, payload, headers: {})
  require 'net/http'
  uri = URI(url)
  request = Net::HTTP::Post.new(uri)
  request['Content-Type'] = 'application/json'
  headers.each { |key, value| request[key] = value }
  request.body = JSON.generate(payload)
  Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
    http.request(request)
  end
end