Module: MeiliSearch::Utils

Defined in:
lib/meilisearch/utils.rb

Constant Summary collapse

SNAKE_CASE =
/[^a-zA-Z0-9]+(.)/.freeze

Class Method Summary collapse

Class Method Details

.filter(original_options, allowed_params = []) ⇒ Object



26
27
28
# File 'lib/meilisearch/utils.rb', line 26

def self.filter(original_options, allowed_params = [])
  original_options.transform_keys(&:to_sym).slice(*allowed_params)
end

.parse_query(original_options, allowed_params = []) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/meilisearch/utils.rb', line 30

def self.parse_query(original_options, allowed_params = [])
  only_allowed_params = filter(original_options, allowed_params)

  Utils.transform_attributes(only_allowed_params).then do |body|
    body.transform_values do |v|
      v.respond_to?(:join) ? v.join(',') : v.to_s
    end
  end
end

.transform_attributes(body) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/meilisearch/utils.rb', line 7

def self.transform_attributes(body)
  case body
  when Array
    body.map { |item| transform_attributes(item) }
  when Hash
    parse(body)
  else
    body
  end
end

.version_error_handler(method_name) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/meilisearch/utils.rb', line 45

def self.version_error_handler(method_name)
  yield if block_given?
rescue MeiliSearch::ApiError => e
  message = message_builder(e.http_message, method_name)

  raise MeiliSearch::ApiError.new(e.http_code, message, e.http_body)
rescue StandardError => e
  raise e.class, message_builder(e.message, method_name)
end