7d4da81272
* install rubocop * 1961 automatic rubocop fixes * update rubocop.yml to ignore half of the remaining cops * rubocop lint warnings * random other warnings fixed
16 lines
518 B
Ruby
16 lines
518 B
Ruby
class WebhookService
|
|
def self.publish!(webhook:, event:)
|
|
return false unless webhook.event_types.include? event.kind
|
|
HTTParty.post webhook.uri, body: payload_for(webhook, event), headers: webhook.headers
|
|
end
|
|
|
|
class << self
|
|
def payload_for(webhook, event)
|
|
WebhookSerializer.new(webhook_object_for(webhook, event), root: false).to_json
|
|
end
|
|
|
|
def webhook_object_for(webhook, event)
|
|
"Webhooks::#{webhook.kind.classify}::#{event.kind.classify}".constantize.new(event)
|
|
end
|
|
end
|
|
end
|