discourse/plugins/automation/lib/discourse_automation/scripts/zapier_webhook.rb

25 lines
773 B
Ruby

# frozen_string_literal: true
DiscourseAutomation::Scriptable.add(DiscourseAutomation::Scripts::ZAPIER_WEBHOOK) do
field :webhook_url, component: :text, required: true
version 1
triggerables %i[user_promoted user_added_to_group user_badge_granted user_removed_from_group]
script do |context, fields|
webhook_url = fields.dig("webhook_url", "value")
unless webhook_url&.start_with?("https://hooks.zapier.com/hooks/catch/")
Rails.logger.warn "[discourse-automation] #{webhook_url} is not a valid Zapier webhook URL, expecting an URL starting with https://hooks.zapier.com/hooks/catch/"
next
end
Jobs.enqueue(
Jobs::DiscourseAutomation::CallZapierWebhook,
webhook_url: webhook_url,
context: context,
)
end
end