module Slanger::Webhook
Public Instance Methods
post(payload)
click to toggle source
# File lib/slanger/webhook.rb, line 7 def post(payload) return unless Slanger::Config.webhook_url payload = { time_ms: Time.now.strftime("%s%L"), events: [payload], } payload = Oj.dump(payload, mode: :compat) digest = OpenSSL::Digest::SHA256.new hmac = OpenSSL::HMAC.hexdigest(digest, Slanger::Config.secret, payload) content_type = "application/json" EM::HttpRequest.new(Slanger::Config.webhook_url). post(body: payload, head: { "X-Pusher-Key" => Slanger::Config.app_key, "X-Pusher-Signature" => hmac, "Content-Type" => content_type, }) # TODO: Exponentially backed off retries for errors end