Class: Mindee::V2::ClientOptions::BaseSearchParameters

Inherits:
Object
  • Object
show all
Defined in:
lib/mindee/v2/client_options/base_search_parameters.rb,
sig/mindee/v2/client_options/base_search_parameters.rbs

Overview

Base parameters for searches.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(page: nil, per_page: nil) ⇒ BaseSearchParameters

Returns a new instance of BaseSearchParameters.

Parameters:

  • page (Integer, nil) (defaults to: nil) —

    1-based page index.

  • per_page (Integer, nil) (defaults to: nil) —

    Number of items per page.

  • page: (Integer, nil) (defaults to: nil)
  • per_page: (Integer, nil) (defaults to: nil)


15
16
17
18
# File 'lib/mindee/v2/client_options/base_search_parameters.rb', line 15

def initialize(page: nil, per_page: nil)
  @page = page
  @per_page = per_page
end

Instance Attribute Details

#page ⇒ Integer? (readonly)

Returns 1-based page index.

Returns:

  • (Integer, nil) —

    1-based page index.



9
10
11
# File 'lib/mindee/v2/client_options/base_search_parameters.rb', line 9

def page
  @page
end

#per_page ⇒ Integer? (readonly)

Returns Number of items per page.

Returns:

  • (Integer, nil) —

    Number of items per page.



11
12
13
# File 'lib/mindee/v2/client_options/base_search_parameters.rb', line 11

def per_page
  @per_page
end

Class Method Details

.response_class ⇒ Class<Mindee::V2::Parsing::Search::BaseSearchResponse>

Returns Response class for the search.

Returns:

Raises:

  • (NotImplementedError)


40
41
42
# File 'lib/mindee/v2/client_options/base_search_parameters.rb', line 40

def self.response_class
  raise NotImplementedError, 'Subclasses must implement the `response_class` class method'
end

.slug ⇒ String

Returns Slug of searchable resources.

Returns:

  • (String) —

    Slug of searchable resources.

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/mindee/v2/client_options/base_search_parameters.rb', line 30

def self.slug
  raise NotImplementedError, 'Subclasses must implement the `slug` class method'
end

Instance Method Details

#request_parameters ⇒ Hash{String => String, Array<String>}

Gets the request parameters for the search request.

Returns:

  • (Hash{String => String, Array<String>})


22
23
24
25
26
27
# File 'lib/mindee/v2/client_options/base_search_parameters.rb', line 22

def request_parameters
  params = {} # : Hash[String, String | Array[String]]
  params['page'] = @page.to_s unless @page.nil?
  params['per_page'] = @per_page.to_s unless @per_page.nil?
  params
end

#response_class ⇒ Class<Mindee::V2::Parsing::Search::BaseSearchResponse>

Returns Response class for the search.

Returns:



45
46
47
# File 'lib/mindee/v2/client_options/base_search_parameters.rb', line 45

def response_class
  self.class.response_class
end

#slug ⇒ String

Returns Slug of searchable resources.

Returns:

  • (String) —

    Slug of searchable resources.



35
36
37
# File 'lib/mindee/v2/client_options/base_search_parameters.rb', line 35

def slug
  self.class.slug
end