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 +4 -4
- data/CHANGELOG.md +19 -2
- data/SECURITY.md +1 -1
- data/lib/algolia/analytics_client.rb +1 -1
- data/lib/algolia/insights_client.rb +1 -1
- data/lib/algolia/logger_helper.rb +1 -1
- data/lib/algolia/personalization_client.rb +1 -1
- data/lib/algolia/recommend_client.rb +1 -1
- data/lib/algolia/responses/add_api_key_response.rb +1 -1
- data/lib/algolia/responses/delete_api_key_response.rb +1 -1
- data/lib/algolia/responses/restore_api_key_response.rb +1 -1
- data/lib/algolia/responses/update_api_key_response.rb +1 -1
- data/lib/algolia/search_client.rb +4 -1
- data/lib/algolia/search_index.rb +6 -2
- data/lib/algolia/version.rb +1 -1
- data/renovate.json +5 -0
- data/test/algolia/integration/account_client_test.rb +2 -2
- data/test/algolia/integration/search_client_test.rb +1 -1
- data/test/algolia/integration/search_index_test.rb +28 -0
- data/test/test_helper.rb +5 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05fcc0d3405e2cb770d7c30610c19951d4f4845723d03c62bd3143cf78cd2f49
|
4
|
+
data.tar.gz: 49ab3c5104e38c993b2c6962062f81834c0d24cf46f1bdc002435f4177fa94cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
3
|
+
## [Unreleased](https://github.com/algolia/algoliasearch-client-ruby/compare/2.2.4..master)
|
4
4
|
|
5
|
-
## [2.2.
|
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
|
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
|
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
|
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
|
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
|
@@ -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
|
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
|
data/lib/algolia/search_index.rb
CHANGED
@@ -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
|
-
|
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
|
data/lib/algolia/version.rb
CHANGED
@@ -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: ['
|
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:
|
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
|
-
|
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.
|
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:
|
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
|