0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-06 13:08:40 +08:00
discourse/plugins/automation/lib/discourse_automation/post_extension.rb
Jarek Radosz 8baf4d5d4c
DEV: Enable Style/RedundantSelf rubocop rule (#40098)
(to be enabled in the shared config)
2026-05-19 19:27:45 +02:00

34 lines
1.1 KiB
Ruby
Vendored

# frozen_string_literal: true
module DiscourseAutomation
module PostExtension
extend ActiveSupport::Concern
prepended { validate :discourse_automation_topic_required_words }
def discourse_automation_topic_required_words
return if !SiteSetting.discourse_automation_enabled
return if post_type == Post.types[:small_action]
return if !topic
return if topic.custom_fields[DiscourseAutomation::AUTOMATION_IDS_CUSTOM_FIELD].blank?
topic.custom_fields[DiscourseAutomation::AUTOMATION_IDS_CUSTOM_FIELD].each do |automation_id|
automation = DiscourseAutomation::Automation.find_by(id: automation_id)
next if automation&.script != DiscourseAutomation::Scripts::TOPIC_REQUIRED_WORDS
words = automation.fields.find_by(name: "words")&.metadata&.[]("value")
next if words.blank?
if words.none? { |word| raw.include?(word) }
errors.add(
:base,
I18n.t(
"discourse_automation.scriptables.topic_required_words.errors.must_include_word",
words: words.join(", "),
),
)
end
end
end
end
end