docbrown/app/services/admin/data_counts.rb
Ben Halpern f811f17830
Fix irrelevant flag numbers (#20204)
* Fix irrelevent numbers in admin display

* Remove unused possible_spam_users_count

* Fix tab styles
2023-10-02 15:01:50 +07:00

34 lines
1 KiB
Ruby

module Admin
class DataCounts
Response = Struct.new(
:open_abuse_reports_count,
:flags_count,
:flags_posts_count,
:flags_comments_count,
:flags_users_count,
keyword_init: true,
)
# @return [Admin::DataCounts::Response]
def self.call
# If this class is to be re-used in more situations, we could pass in params
# to dictate which counts are needed, to reduce unneeded queries.
open_abuse_reports_count =
FeedbackMessage.open_abuse_reports.size
flags = Reaction
.includes(:user, :reactable)
.where(status: "valid")
.live_reactable
.privileged_category
Response.new(
open_abuse_reports_count: open_abuse_reports_count,
flags_count: flags.size,
flags_posts_count: flags.where(reactable_type: "Article").size,
flags_comments_count: flags.where(reactable_type: "Comment").size,
flags_users_count: flags.where(reactable_type: "User").size,
)
end
end
end