23 lines
672 B
Ruby
23 lines
672 B
Ruby
class Admins::SchoolQuery < ApplicationQuery
|
|
include CustomSortable
|
|
|
|
attr_reader :params
|
|
|
|
sort_columns :users_count, :created_at, default_by: :created_at, default_direction: :desc
|
|
|
|
def initialize(params)
|
|
@params = params
|
|
end
|
|
|
|
def call
|
|
schools = School.all
|
|
|
|
keyword = strip_param(:keyword)
|
|
Rails.logger.info("###########{keyword}")
|
|
if keyword
|
|
schools = schools.where('schools.name LIKE ?', "%#{keyword}%")
|
|
end
|
|
schools = schools.left_joins(:user_extensions).select('schools.*, IFNULL(count(user_extensions.user_id),0) users_count').group('schools.id')
|
|
custom_sort schools, params[:sort_by], params[:sort_direction]
|
|
end
|
|
end |