From 388f45c5709a92d55ae18a785ff5d525e8a9f974 Mon Sep 17 00:00:00 2001 From: Daniel Waterworth Date: Thu, 11 Nov 2021 12:21:25 -0600 Subject: [PATCH] DEV: Remove deprecated methods (#14885) --- lib/flag_query.rb | 211 ---------------------------------------------- 1 file changed, 211 deletions(-) diff --git a/lib/flag_query.rb b/lib/flag_query.rb index 5c6c0bce9b1..beb69d78971 100644 --- a/lib/flag_query.rb +++ b/lib/flag_query.rb @@ -1,9 +1,6 @@ # frozen_string_literal: true -require 'ostruct' - module FlagQuery - def self.plugin_post_custom_fields @plugin_post_custom_fields ||= {} end @@ -12,212 +9,4 @@ module FlagQuery def self.register_plugin_post_custom_field(field, plugin) plugin_post_custom_fields[field] = plugin end - - def self.flagged_posts_report(current_user, opts = nil) - Discourse.deprecate("FlagQuery is deprecated, use the Reviewable API instead.", since: "2.3.0beta5", drop_from: "2.4") - - opts ||= {} - offset = opts[:offset] || 0 - per_page = opts[:per_page] || 25 - - reviewables = ReviewableFlaggedPost.default_visible.viewable_by(current_user, order: 'created_at DESC') - reviewables = reviewables.where(topic_id: opts[:topic_id]) if opts[:topic_id] - reviewables = reviewables.where(target_created_by_id: opts[:user_id]) if opts[:user_id] - reviewables = reviewables.limit(per_page).offset(offset) - - if opts[:filter] == 'old' - reviewables = reviewables.where("status <> ?", Reviewable.statuses[:pending]) - else - reviewables = reviewables.pending - end - - total_rows = reviewables.count - - post_ids = reviewables.map(&:target_id).uniq - - posts = DB.query(<<~SQL, post_ids: post_ids) - SELECT p.id, - p.cooked as excerpt, - p.raw, - p.user_id, - p.topic_id, - p.post_number, - p.reply_count, - p.hidden, - p.deleted_at, - p.user_deleted, - NULL as post_action_ids, - (SELECT created_at FROM post_revisions WHERE post_id = p.id AND user_id = p.user_id ORDER BY created_at DESC LIMIT 1) AS last_revised_at, - (SELECT COUNT(*) FROM post_actions WHERE (disagreed_at IS NOT NULL OR agreed_at IS NOT NULL OR deferred_at IS NOT NULL) AND post_id = p.id)::int AS previous_flags_count - FROM posts p - WHERE p.id in (:post_ids) - SQL - - post_lookup = {} - user_ids = Set.new - topic_ids = Set.new - - posts.each do |p| - user_ids << p.user_id - topic_ids << p.topic_id - p.excerpt = Post.excerpt(p.excerpt) - post_lookup[p.id] = p - end - - all_post_actions = [] - reviewables.each do |r| - post = post_lookup[r.target_id] - post.post_action_ids ||= [] - - r.reviewable_scores.order('created_at desc').each do |rs| - action = { - id: rs.id, - post_id: post.id, - user_id: rs.user_id, - post_action_type_id: rs.reviewable_score_type, - created_at: rs.created_at, - disposed_by_id: rs.reviewed_by_id, - disposed_at: rs.reviewed_at, - disposition: ReviewableScore.statuses[rs.status], - targets_topic: r.payload['targets_topic'], - staff_took_action: rs.took_action? - } - action[:name_key] = PostActionType.types.key(rs.reviewable_score_type) - - if rs.meta_topic.present? - meta_posts = rs.meta_topic.ordered_posts - - conversation = {} - if response = meta_posts[0] - action[:related_post_id] = response.id - - conversation[:response] = { - excerpt: excerpt(response.cooked), - user_id: response.user_id - } - user_ids << response.user_id - if reply = meta_posts[1] - conversation[:reply] = { - excerpt: excerpt(reply.cooked), - user_id: reply.user_id - } - user_ids << reply.user_id - conversation[:has_more] = rs.meta_topic.posts_count > 2 - end - end - - action.merge!(permalink: rs.meta_topic.relative_url, conversation: conversation) - end - - post.post_action_ids << action[:id] - all_post_actions << action - user_ids << action[:user_id] - user_ids << rs.reviewed_by_id if rs.reviewed_by_id - end - end - - post_custom_field_names = [] - plugin_post_custom_fields.each do |field, plugin| - post_custom_field_names << field if plugin.enabled? - end - - post_custom_fields = Post.custom_fields_for_ids(post_ids, post_custom_field_names) - - # maintain order - posts = post_ids.map { |id| post_lookup[id] } - - # TODO: add serializer so we can skip this - posts.map! do |post| - result = post.to_h - if cfs = post_custom_fields[post.id] - result[:custom_fields] = cfs - end - result - end - - guardian = Guardian.new(current_user) - users = User.includes(:user_stat).where(id: user_ids.to_a).to_a - User.preload_custom_fields(users, User.allowed_user_custom_fields(guardian)) - - [ - posts, - Topic.with_deleted.where(id: topic_ids.to_a).to_a, - users, - all_post_actions, - total_rows - ] - end - - def self.flagged_post_actions(opts = nil) - Discourse.deprecate("FlagQuery is deprecated, please use the Reviewable API instead.", since: "2.3.0beta5", drop_from: "2.4") - - opts ||= {} - - scores = ReviewableScore.includes(:reviewable).where('reviewables.type' => 'ReviewableFlaggedPost') - scores = scores.where('reviewables.topic_id' => opts[:topic_id]) if opts[:topic_id] - scores = scores.where('reviewables.target_created_by_id' => opts[:user_id]) if opts[:user_id] - - if opts[:filter] == 'without_custom' - return scores.where(reviewable_score_type: PostActionType.flag_types_without_custom.values) - end - - if opts[:filter] == "old" - scores = scores.where('reviewables.status <> ?', Reviewable.statuses[:pending]) - else - scores = scores.where('reviewables.status' => Reviewable.statuses[:pending]) - end - - scores - end - - def self.flagged_topics - Discourse.deprecate("FlagQuery has been deprecated. Please use the Reviewable API instead.", since: "2.3.0beta5", drop_from: "2.4") - - params = { - pending: Reviewable.statuses[:pending], - min_score: Reviewable.min_score_for_priority - } - - results = DB.query(<<~SQL, params) - SELECT rs.reviewable_score_type, - p.id AS post_id, - r.topic_id, - rs.created_at, - p.user_id - FROM reviewables AS r - INNER JOIN reviewable_scores AS rs ON rs.reviewable_id = r.id - INNER JOIN posts AS p ON p.id = r.target_id - WHERE r.type = 'ReviewableFlaggedPost' - AND r.status = :pending - AND r.score >= :min_score - ORDER BY rs.created_at DESC - SQL - - ft_by_id = {} - user_ids = Set.new - - results.each do |r| - ft = ft_by_id[r.topic_id] ||= OpenStruct.new( - topic_id: r.topic_id, - flag_counts: {}, - user_ids: Set.new, - last_flag_at: r.created_at, - ) - - ft.flag_counts[r.reviewable_score_type] ||= 0 - ft.flag_counts[r.reviewable_score_type] += 1 - - ft.user_ids << r.user_id - user_ids << r.user_id - end - - all_topics = Topic.where(id: ft_by_id.keys).to_a - all_topics.each { |t| ft_by_id[t.id].topic = t } - - Topic.preload_custom_fields(all_topics, TopicList.preloaded_custom_fields) - { - flagged_topics: ft_by_id.values, - users: User.where(id: user_ids) - } - end end