DEV: Remove FlagQuery class and old code (#8064)

DEV: Remove FlagQuery class and old code (#8064)

diff --git a/app/jobs/scheduled/pending_reviewables_reminder.rb b/app/jobs/scheduled/pending_reviewables_reminder.rb
index a0b4c65..92642b0 100644
--- a/app/jobs/scheduled/pending_reviewables_reminder.rb
+++ b/app/jobs/scheduled/pending_reviewables_reminder.rb
@@ -1,7 +1,5 @@
 # frozen_string_literal: true
 
-require_dependency 'flag_query'
-
 module Jobs
 
   class PendingReviewablesReminder < Jobs::Scheduled
diff --git a/lib/flag_query.rb b/lib/flag_query.rb
index 1484772..c03763d 100644
--- a/lib/flag_query.rb
+++ b/lib/flag_query.rb
@@ -220,15 +220,4 @@ module FlagQuery
       users: User.where(id: user_ids)
     }
   end
-
-  def self.excerpt(cooked)
-    excerpt = Post.excerpt(cooked, 200, keep_emoji_images: true)
-    # remove the first link if it's the first node
-    fragment = Nokogiri::HTML.fragment(excerpt)
-    if fragment.children.first == fragment.css("a:first").first && fragment.children.first
-      fragment.children.first.remove
-    end
-    fragment.to_html.strip
-  end
-
 end
diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb
index 7fe0198..96bdcc3 100644
--- a/lib/plugin/instance.rb
+++ b/lib/plugin/instance.rb
@@ -129,12 +129,6 @@ class Plugin::Instance
     end
   end
 
-  def whitelist_flag_post_custom_field(field)
-    reloadable_patch do |plugin|
-      ::FlagQuery.register_plugin_post_custom_field(field, plugin) # plugin.enabled? is checked at runtime
-    end
-  end
-
   def whitelist_staff_user_custom_field(field)
     reloadable_patch do |plugin|
       ::User.register_plugin_staff_custom_field(field, plugin) # plugin.enabled? is checked at runtime
diff --git a/lib/reviewable/conversation.rb b/lib/reviewable/conversation.rb
index 4fc44c0..1b86788 100644
--- a/lib/reviewable/conversation.rb
+++ b/lib/reviewable/conversation.rb
@@ -11,7 +11,17 @@ class Reviewable < ActiveRecord::Base
       def initialize(post)
         @user = post.user
         @id = post.id
-        @excerpt = FlagQuery.excerpt(post.cooked)
+        @excerpt = self.class.excerpt(post.cooked)
+      end
+
+      def self.excerpt(cooked)
+        excerpt = ::Post.excerpt(cooked, 200, keep_emoji_images: true)
+        # remove the first link if it's the first node
+        fragment = Nokogiri::HTML.fragment(excerpt)
+        if fragment.children.first == fragment.css("a:first").first && fragment.children.first
+          fragment.children.first.remove
+        end
+        fragment.to_html.strip
       end
     end
 
diff --git a/lib/tasks/posts.rake b/lib/tasks/posts.rake
index 5bcdf29..fec5a4f 100644
--- a/lib/tasks/posts.rake
+++ b/lib/tasks/posts.rake
@@ -277,26 +277,6 @@ task 'posts:delete_all_likes' => :environment do
   puts "", "#{likes_deleted} likes deleted!", ""
 end
 
-desc 'Defer all flags'
-task 'posts:defer_all_flags' => :environment do
-
-  active_flags = FlagQuery.flagged_post_actions('active')
-
-  flags_deferred = 0
-  total = active_flags.count
-
-  active_flags.each do |post_action|
-    begin
-      PostAction.defer_flags!(Post.find(post_action.post_id), Discourse.system_user)
-      print_status(flags_deferred += 1, total)
-    rescue
-      # skip
-    end
-  end
-
-  puts "", "#{flags_deferred} flags deferred!", ""
-end
-
 desc 'Refreshes each post that was received via email'
 task 'posts:refresh_emails', [:topic_id] => [:environment] do |_, args|
   posts = Post.where.not(raw_email: nil).where(via_email: true)
diff --git a/spec/components/flag_query_spec.rb b/spec/components/flag_query_spec.rb
deleted file mode 100644
index 6e37008..0000000
--- a/spec/components/flag_query_spec.rb
+++ /dev/null
@@ -1,150 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-require_dependency 'flag_query'
-
-describe FlagQuery do
-  fab!(:admin) { Fabricate(:admin) }
-  fab!(:moderator) { Fabricate(:moderator) }
-  fab!(:codinghorror) { Fabricate(:coding_horror) }
-
-  describe "flagged_topics" do
-    it "respects `reviewable_default_visibility`" do
-      Reviewable.set_priorities(medium: 10.0)
-
-      post = create_post
-
-      SiteSetting.reviewable_default_visibility = 'low'
-      PostActionCreator.spam(moderator, post)
-
-      result = FlagQuery.flagged_topics
-      expect(result[:flagged_topics]).to be_present
-      ft = result[:flagged_topics].first
-      expect(ft.topic).to eq(post.topic)
-      expect(ft.flag_counts).to eq(PostActionType.types[:spam] => 1)
-
-      SiteSetting.reviewable_default_visibility = 'medium'
-
-      result = FlagQuery.flagged_topics
-      expect(result[:flagged_topics]).to be_blank
-
-      PostActionCreator.create(admin, post, :inappropriate)
-      result = FlagQuery.flagged_topics
-      expect(result[:flagged_topics]).to be_present
-      ft = result[:flagged_topics].first
-      expect(ft.topic).to eq(post.topic)
-      expect(ft.flag_counts).to eq(
-        PostActionType.types[:spam] => 1,
-        PostActionType.types[:inappropriate] => 1
-      )
-    end
-  end
-
-  describe "flagged_post_actions" do
-
-    it "returns the proper count" do
-      post = create_post
-      PostActionCreator.spam(moderator, post)
-      expect(FlagQuery.flagged_post_actions(topic_id: post.topic_id).count).to eq(1)
-      expect(FlagQuery.flagged_post_actions(topic_id: post.topic_id, filter: 'old').count).to eq(0)
-    end
-  end
-
-  describe "flagged_posts_report" do
-    it "does not return flags on system posts" do
-      post = create_post(user: Discourse.system_user)
-      PostActionCreator.create(codinghorror, post, :spam)
-      posts, topics, users = FlagQuery.flagged_posts_report(admin)
-
-      expect(posts).to be_blank
-      expect(topics).to be_blank
-      expect(users).to be_blank
-    end
-
-    it "operates correctly" do
-      post = create_post
-      post2 = create_post
-
-      user2 = Fabricate(:user)
-      user3 = Fabricate(:user)
-
-      PostActionCreator.spam(codinghorror, post)
-      PostActionCreator.create(user2, post, :spam)
-      result = PostActionCreator.new(
-        user3,
-        post,
-        PostActionType.types[:notify_moderators],
-        message: "this is a :one::zero:"
-      ).perform
-      mod_message = result.post_action
-
-      PostActionCreator.spam(codinghorror, post2)
-      PostActionCreator.spam(user2, post2)
-
-      posts, topics, users, all_actions = FlagQuery.flagged_posts_report(admin)
-
-      expect(posts.count).to eq(2)
-      first = posts.first
-
-      expect(users.count).to eq(5)
-      expect(first[:post_action_ids].count).to eq(2)
-
-      expect(topics.count).to eq(2)
-
-      second = posts[1]
-      expect(second[:post_action_ids].count).to eq(3)
-
-      action = all_actions.find { |a| a[:id] == second[:post_action_ids][0] }
-      expect(action[:permalink]).to eq(mod_message.related_post.topic.relative_url)
-      expect(action[:conversation][:response][:excerpt]).to match("<img src=")
-
-      posts, users = FlagQuery.flagged_posts_report(admin, offset: 1)
-      expect(posts.count).to eq(1)
-
-      # Try by topic
-      posts = FlagQuery.flagged_posts_report(admin, topic_id: post.topic_id)
-      expect(posts).to be_present
-      posts = FlagQuery.flagged_posts_report(admin, topic_id: -1)
-      expect(posts[0]).to be_blank
-
-      # Try by user
-      posts = FlagQuery.flagged_posts_report(admin, user_id: post.user_id)
-      expect(posts).to be_present
-      posts = FlagQuery.flagged_posts_report(admin, user_id: -1000)
-      expect(posts[0]).to be_blank
-
-      # chuck post in category a mod can not see and make sure it's not returned
-      category = Fabricate(:category)
-      category.set_permissions(admins: :full)
-      category.save
-
-      post2.topic.change_category_to_id(category.id)
-      post2.topic.save
-
-      posts, users = FlagQuery.flagged_posts_report(moderator)
-      expect(posts.count).to eq(1)
-    end
-
-    it "respects `reviewable_default_visibility`" do
-      Reviewable.set_priorities(medium: 3.0)
-      SiteSetting.reviewable_default_visibility = 'medium'
-
-      flagger = Fabricate(:user)
-

[... diff too long, it was truncated ...]

GitHub sha: 56823205