class V1::LearningObjectsComplaintsController < ApplicationController include ::DeletedObjectsController include ::Paginator before_action :set_complaint, only: [:show, :show_related , :reject, :accept] # GET v1/learning_objects_complaints def index complaints_curator = paginate Complaint base_date = Date.new(2022, 1, 1) complaints_priority = ComplaintReason.joins(:complaints).select("complainable_id, SUM(complaint_reasons.priority)") .where("complaints.created_at >= ?", base_date).group("complainable_id").order("sum DESC") complaints_curator = [] complaints_priority.each do |complainable| # Select all complaints related to the complainable_id (attributes that have been sumed) complaints_curator << ComplaintReason.joins(:complaints).select("*") .where("complaints.complainable_id = ? AND complaints.created_at >=?", complainable.complainable_id, base_date).order("complaint_reasons.priority DESC") end render json: complaints_curator end end