Class: Uploadcare::Operations::FileSearch

Inherits:
Object
  • Object
show all
Defined in:
lib/uploadcare/operations/file_search.rb

Overview

Executes a file search and builds its POST-aware paginated result.

Constant Summary collapse

QUERY_OPTIONS =
%i[limit offset include].freeze

Class Method Summary collapse

Class Method Details

.call(options:, client:, resource_class:, request_options: {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/uploadcare/operations/file_search.rb', line 8

def call(options:, client:, resource_class:, request_options: {})
  search_params, query_params = split_options(options)
  response = Uploadcare::Result.unwrap(
    client.api.rest.files.search(
      params: search_params, query: query_params, request_options: request_options
    )
  )

  Uploadcare::Collections::FileSearchResult.new(
    resources: response.fetch('results', []).map { |data| resource_class.new(data, client) },
    next_page: response['next'],
    previous_page: response['previous'],
    per_page: response['per_page'],
    total: response['total'],
    api_client: client.api.rest.files,
    resource_class: resource_class,
    client: client,
    request_options: request_options,
    search_params: search_params,
    search_query: query_params
  )
end