algolia 2.2.2 → 2.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c2f4626569fa71c66f1801a6608a0d66bdd7afc5d2d42342856d8083281d0ee
4
- data.tar.gz: bbc716503ac0354dd80a1e5d1196cfc8ff5e8d80c3c166c196bd1ec5e227a446
3
+ metadata.gz: 05fcc0d3405e2cb770d7c30610c19951d4f4845723d03c62bd3143cf78cd2f49
4
+ data.tar.gz: 49ab3c5104e38c993b2c6962062f81834c0d24cf46f1bdc002435f4177fa94cb
5
5
  SHA512:
6
- metadata.gz: bd82583938e41074786a9f6e3518256af5f54c6946e8224a9e2ecc40952f211475dbec10ba5d054058764bdccbdceff80a9147c195a8c3f62a5ab4f033c11757
7
- data.tar.gz: 25971344a9f64260d29f8c1a7878605a2e408369de05b4e4add74e828697cefde461bb83ed5564dbd6f94de3844844e6e357568e830de53a3d77253a27151e33
6
+ metadata.gz: 40e6ff905fe540cc559cb622de99a5e14248b9be734700ed74af17851f13112450b00cba050a852a936ab208a77ddc49999a4e00a858fad288dbcdd46f2dc857
7
+ data.tar.gz: 4051ca27f08a45ff9ba03621449f2d7fcaff34b95f712657727c9b5aacce3cd2a2bba27fba5758ab225efcdb33329e178feb6a8bfa8e59dc720cf4320473e19f
data/CHANGELOG.md CHANGED
@@ -1,8 +1,25 @@
1
1
  # ChangeLog
2
2
 
3
- ## [Unreleased](https://github.com/algolia/algoliasearch-client-ruby/compare/2.2.2..master)
3
+ ## [Unreleased](https://github.com/algolia/algoliasearch-client-ruby/compare/2.2.4..master)
4
4
 
5
- ## [2.2.1](https://github.com/algolia/algoliasearch-client-ruby/compare/2.2.1...2.2.2) (2021-12-08)
5
+ ## [2.2.5](https://github.com/algolia/algoliasearch-client-ruby/compare/2.2.4...2.2.5) (2022-05-24)
6
+ ### Fixed
7
+ - multiple_queries: allow params to be `nil` ([`#478`](https://github.com/algolia/algoliasearch-client-ruby/pull/478))
8
+ -
9
+ ## [2.2.4](https://github.com/algolia/algoliasearch-client-ruby/compare/2.2.3...2.2.4) (2022-05-24)
10
+ ### Fixed
11
+ - API endpoint URL mishandling in get_settings method ([`#473`](https://github.com/algolia/algoliasearch-client-ruby/pull/473))
12
+ - Confusing empty debug.log generation in gem users root ([`#474`](https://github.com/algolia/algoliasearch-client-ruby/pull/474))
13
+
14
+ ## [2.2.3](https://github.com/algolia/algoliasearch-client-ruby/compare/2.2.2...2.2.3) (2022-04-21)
15
+ ### Fixed
16
+ - API polling flood issue due to msec sleep time mishandling ([`#472`](https://github.com/algolia/algoliasearch-client-ruby/pull/472))
17
+ - mailto link in SECURITY.md ([`#463`](https://github.com/algolia/algoliasearch-client-ruby/pull/463))
18
+
19
+ ### Added
20
+ - allow hash in multiple queries ([`#468`](https://github.com/algolia/algoliasearch-client-ruby/pull/468))
21
+
22
+ ## [2.2.2](https://github.com/algolia/algoliasearch-client-ruby/compare/2.2.1...2.2.2) (2021-12-08)
6
23
  ### Fixed
7
24
  - Added a `status` field to the `MockRequester` ([`#467`](https://github.com/algolia/algoliasearch-client-ruby/pull/467))
8
25
 
data/SECURITY.md CHANGED
@@ -1,3 +1,3 @@
1
1
  ## Reporting a Vulnerability
2
2
 
3
- To report a security vulnerability, please use the [Algolia security email](security@algolia.com). Algolia will coordinate the fix and disclosure.
3
+ To report a security vulnerability, please use the [Algolia security email](mailto:security@algolia.com). Algolia will coordinate the fix and disclosure.
@@ -13,7 +13,7 @@ module Algolia
13
13
  def initialize(analytics_config, opts = {})
14
14
  @config = analytics_config
15
15
  adapter = opts[:adapter] || Defaults::ADAPTER
16
- logger = opts[:logger] || LoggerHelper.create('debug.log')
16
+ logger = opts[:logger] || LoggerHelper.create
17
17
  requester = opts[:http_requester] || Defaults::REQUESTER_CLASS.new(adapter, logger)
18
18
  @transporter = Transport::Transport.new(@config, requester)
19
19
  end
@@ -13,7 +13,7 @@ module Algolia
13
13
  def initialize(insights_config, opts = {})
14
14
  @config = insights_config
15
15
  adapter = opts[:adapter] || Defaults::ADAPTER
16
- logger = opts[:logger] || LoggerHelper.create('debug.log')
16
+ logger = opts[:logger] || LoggerHelper.create
17
17
  requester = opts[:http_requester] || Defaults::REQUESTER_CLASS.new(adapter, logger)
18
18
  @transporter = Transport::Transport.new(@config, requester)
19
19
  end
@@ -5,7 +5,7 @@ module Algolia
5
5
  # @param debug_file [nil|String] file used to output the logs
6
6
  #
7
7
  def self.create(debug_file = nil)
8
- file = debug_file || File.new('debug.log')
8
+ file = debug_file || (ENV['ALGOLIA_DEBUG'] ? File.new('debug.log') : $stderr)
9
9
  instance = ::Logger.new file
10
10
  instance.progname = 'algolia'
11
11
  instance
@@ -11,7 +11,7 @@ module Algolia
11
11
  def initialize(personalization_config, opts = {})
12
12
  @config = personalization_config
13
13
  adapter = opts[:adapter] || Defaults::ADAPTER
14
- logger = opts[:logger] || LoggerHelper.create('debug.log')
14
+ logger = opts[:logger] || LoggerHelper.create
15
15
  requester = opts[:http_requester] || Defaults::REQUESTER_CLASS.new(adapter, logger)
16
16
  @transporter = Transport::Transport.new(@config, requester)
17
17
  end
@@ -18,7 +18,7 @@ module Algolia
18
18
  def initialize(recommend_config, opts = {})
19
19
  @config = recommend_config
20
20
  adapter = opts[:adapter] || Defaults::ADAPTER
21
- logger = opts[:logger] || LoggerHelper.create('debug.log')
21
+ logger = opts[:logger] || LoggerHelper.create
22
22
  requester = opts[:http_requester] || Defaults::REQUESTER_CLASS.new(adapter, logger)
23
23
  @transporter = Transport::Transport.new(@config, requester)
24
24
  end
@@ -28,7 +28,7 @@ module Algolia
28
28
  end
29
29
  retries_count += 1
30
30
  time_before_retry = retries_count * Defaults::WAIT_TASK_DEFAULT_TIME_BEFORE_RETRY
31
- sleep(time_before_retry / 1000)
31
+ sleep(time_before_retry.to_f / 1000)
32
32
  end
33
33
  end
34
34
 
@@ -29,7 +29,7 @@ module Algolia
29
29
  unless @done
30
30
  retries_count += 1
31
31
  time_before_retry = retries_count * Defaults::WAIT_TASK_DEFAULT_TIME_BEFORE_RETRY
32
- sleep(time_before_retry / 1000)
32
+ sleep(time_before_retry.to_f / 1000)
33
33
  end
34
34
  end
35
35
  end
@@ -26,7 +26,7 @@ module Algolia
26
26
  end
27
27
  retries_count += 1
28
28
  time_before_retry = retries_count * Defaults::WAIT_TASK_DEFAULT_TIME_BEFORE_RETRY
29
- sleep(time_before_retry / 1000)
29
+ sleep(time_before_retry.to_f / 1000)
30
30
  end
31
31
  end
32
32
 
@@ -29,7 +29,7 @@ module Algolia
29
29
  raise e unless e.code == 404
30
30
  retries_count += 1
31
31
  time_before_retry = retries_count * Defaults::WAIT_TASK_DEFAULT_TIME_BEFORE_RETRY
32
- sleep(time_before_retry / 1000)
32
+ sleep(time_before_retry.to_f / 1000)
33
33
  end
34
34
  end
35
35
 
@@ -19,7 +19,7 @@ module Algolia
19
19
  def initialize(search_config, opts = {})
20
20
  @config = search_config
21
21
  adapter = opts[:adapter] || Defaults::ADAPTER
22
- logger = opts[:logger] || LoggerHelper.create('debug.log')
22
+ logger = opts[:logger] || LoggerHelper.create
23
23
  requester = opts[:http_requester] || Defaults::REQUESTER_CLASS.new(adapter, logger)
24
24
  @transporter = Transport::Transport.new(@config, requester)
25
25
  end
@@ -478,6 +478,9 @@ module Algolia
478
478
  # @return [Hash]
479
479
  #
480
480
  def multiple_queries(queries, opts = {})
481
+ queries.each do |q|
482
+ q[:params] = to_query_string(q[:params]) unless q[:params].nil? || q[:params].is_a?(String)
483
+ end
481
484
  @transporter.read(:POST, '/1/indexes/*/queries', { requests: queries }, opts)
482
485
  end
483
486
  alias_method :search, :multiple_queries
@@ -36,7 +36,7 @@ module Algolia
36
36
  if status == 'published'
37
37
  return
38
38
  end
39
- sleep(time_before_retry / 1000)
39
+ sleep(time_before_retry.to_f / 1000)
40
40
  end
41
41
  end
42
42
 
@@ -974,7 +974,11 @@ module Algolia
974
974
  # @return [Hash]
975
975
  #
976
976
  def get_settings(opts = {})
977
- response = @transporter.read(:GET, path_encode('/1/indexes/%s/settings', @name) + handle_params({ getVersion: 2 }), {}, opts)
977
+ opts_default = {
978
+ getVersion: 2
979
+ }
980
+ opts = opts_default.merge(opts)
981
+ response = @transporter.read(:GET, path_encode('/1/indexes/%s/settings', @name), {}, opts)
978
982
 
979
983
  deserialize_settings(response, @config.symbolize_keys)
980
984
  end
@@ -1,3 +1,3 @@
1
1
  module Algolia
2
- VERSION = '2.2.2'.freeze
2
+ VERSION = '2.2.5'.freeze
3
3
  end
data/renovate.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": [
3
+ "config:base"
4
+ ]
5
+ }
@@ -14,7 +14,7 @@ class AccountClientTest < BaseTest
14
14
 
15
15
  search_client2 = Algolia::Search::Client.create(APPLICATION_ID_2, ADMIN_KEY_2)
16
16
  index2 = search_client2.init_index(get_test_index_name('copy_index2'))
17
- index1.save_object!({ objectID: 'one' })
17
+ index1.save_object!({ objectID: 'one', title: 'Test title' })
18
18
  index1.save_rule!({
19
19
  objectID: 'one',
20
20
  condition: { anchoring: 'is', pattern: 'pattern' },
@@ -29,7 +29,7 @@ class AccountClientTest < BaseTest
29
29
  }
30
30
  })
31
31
  index1.save_synonym!({ objectID: 'one', type: 'synonym', synonyms: %w(one two) })
32
- index1.set_settings!({ searchableAttributes: ['objectID'] })
32
+ index1.set_settings!({ searchableAttributes: ['title'] })
33
33
 
34
34
  Algolia::Account::Client.copy_index!(index1, index2)
35
35
  assert_equal 'one', index2.get_object('one')[:objectID]
@@ -294,7 +294,7 @@ class SearchClientTest < BaseTest
294
294
 
295
295
  results = @@search_client.multiple_queries([
296
296
  { indexName: index_name1, params: to_query_string({ query: '', hitsPerPage: 2 }) },
297
- { indexName: index_name2, params: to_query_string({ query: '', hitsPerPage: 2 }) }
297
+ { indexName: index_name2, params: { query: '', hitsPerPage: 2 } }
298
298
  ], { strategy: 'none' })[:results]
299
299
 
300
300
  assert_equal 2, results.length
@@ -278,6 +278,34 @@ class SearchIndexTest < BaseTest
278
278
  # check that the forwardToReplicas parameter is passed correctly
279
279
  assert @index.set_settings!(settings, { forwardToReplicas: true })
280
280
  end
281
+
282
+ # Check version 1 API calling (ref. PR #473)
283
+ def test_version_param
284
+ @index.save_object!(generate_object('obj1')) # create index
285
+
286
+ # Check response's version value by actual access
287
+ assert_equal 2, @index.get_settings[:version]
288
+ assert_equal 1, @index.get_settings(getVersion: 1)[:version]
289
+ assert_equal 2, @index.get_settings(getVersion: 2)[:version]
290
+
291
+ # Check API endpoint handling by mock access
292
+ requester = MockRequester.new
293
+ client = Algolia::Search::Client.new(@@search_config, http_requester: requester)
294
+ index = client.init_index(@index_name)
295
+
296
+ index.get_settings # default
297
+ index.get_settings(getVersion: 1)
298
+ index.get_settings(getVersion: 2)
299
+
300
+ assert_requests(
301
+ requester,
302
+ [
303
+ { method: :get, path: "/1/indexes/#{@index_name}/settings?getVersion=2" },
304
+ { method: :get, path: "/1/indexes/#{@index_name}/settings?getVersion=1" },
305
+ { method: :get, path: "/1/indexes/#{@index_name}/settings?getVersion=2" }
306
+ ]
307
+ )
308
+ end
281
309
  end
282
310
 
283
311
  describe 'search' do
data/test/test_helper.rb CHANGED
@@ -38,7 +38,11 @@ def assert_requests(requester, requests)
38
38
  requests.each_with_index do |expected_request, i|
39
39
  request = actual_requests[i]
40
40
 
41
- assert_equal(expected_request[:body], request[:body])
41
+ if expected_request[:body].nil? # for GET requests w/ NO body.
42
+ assert_nil(request[:body])
43
+ else
44
+ assert_equal(expected_request[:body], request[:body])
45
+ end
42
46
  assert_equal(expected_request[:method], request[:method])
43
47
  assert_equal(expected_request[:path], request[:path])
44
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: algolia
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Algolia
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-08 00:00:00.000000000 Z
11
+ date: 2022-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -256,6 +256,7 @@ files:
256
256
  - lib/algolia/transport/transport.rb
257
257
  - lib/algolia/user_agent.rb
258
258
  - lib/algolia/version.rb
259
+ - renovate.json
259
260
  - sig/config/algolia_config.rbs
260
261
  - sig/config/analytics_config.rbs
261
262
  - sig/config/insights_config.rbs