Module: HasHelpers::Search

Defined in:
app/lib/has_helpers/search.rb,
app/lib/has_helpers/search/search_utils.rb,
app/lib/has_helpers/search/elasticsearch_shared.rb

Defined Under Namespace

Modules: ElasticsearchShared, Provider, SearchUtils Classes: Elasticsearch, SqlSearch

Class Method Summary collapse

Class Method Details

.search(user, application, resources:, query:, options:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/lib/has_helpers/search.rb', line 5

def self.search(user, application, resources:, query:, options:)
  validate_resources!(resources, application)

  resources = ::HasHelpers::Search::SearchUtils.resources(user, application, resources)

  base_query_options = ::HasHelpers::Search::SearchUtils.base_query_options(options.to_h, user)

  search_results =
    if resources.present?
      ::HasHelpers::Search::SearchUtils.provider.search(resource: resources, query: query, options: base_query_options)
    else
      { result: [] }
    end

  {
    results: search_results[:results],
    total_entries: search_results[:total_entries],
    current_page: search_results[:current_page],
    per_page: search_results[:per_page]
  }
end