Class: SolidQueueGuard::Notifier
- Inherits:
-
Object
- Object
- SolidQueueGuard::Notifier
- Defined in:
- lib/solid_queue_guard/notifier.rb
Class Method Summary collapse
- .deliver(adapter, report) ⇒ Object
- .deliver_all(report, adapters: SolidQueueGuard.config.notify_with) ⇒ Object
- .post_json(url, payload, headers: {}) ⇒ Object
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 |