discourse/app/services/group_mentions_updater.rb

17 lines
450 B
Ruby

# frozen_string_literal: true
class GroupMentionsUpdater
def self.update(current_name, previous_name)
Post.where(
"cooked LIKE '%class=\"mention-group\"%' AND raw LIKE :previous_name",
previous_name: "%@#{previous_name}%"
).find_in_batches do |posts|
posts.each do |post|
post.raw.gsub!(/(^|\s)(@#{previous_name})(\s|$)/, "\\1@#{current_name}\\3")
post.save!(validate: false)
end
end
end
end