class Weapps::SearchQuery < ApplicationQuery include ElasticsearchAble attr_reader :params def initialize(params) @params = params end def call modal_name.search(keyword, search_options) end private def search_options hash = { fields: [:name], page: page, per_page: per_page } hash.merge(where: { status: 2 }) if modal_name == Shixun hash end def modal_name @_modal_name ||= begin case params[:type].to_s when 'subject' then Subject when 'shixun' then Shixun when 'course' then Course else Subject end end end end