class Admin::ModerationHistoryController < Admin::AdminController def index history_filter = params[:filter] raise Discourse::NotFound unless ['post', 'topic'].include?(history_filter) query = UserHistory.where( action: UserHistory.actions.only( :delete_user, :suspend_user, :silence_user, :delete_post, :delete_topic ).values ) case history_filter when 'post' raise Discourse::NotFound if params[:post_id].blank? query = query.where(post_id: params[:post_id]) when 'topic' raise Discourse::NotFound if params[:topic_id].blank? query = query.where( "topic_id = ? OR post_id IN (?)", params[:topic_id], Post.with_deleted.where(topic_id: params[:topic_id]).pluck(:id) ) end query = query.includes(:acting_user) query = query.order(:created_at) render_serialized( query, UserHistorySerializer, root: 'moderation_history', rest_serializer: true ) end end