algolia 3.0.0.beta.3 → 3.0.0.beta.4
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 +5 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/algolia/api/search_client.rb +51 -0
- data/lib/algolia/transport/transport.rb +8 -8
- data/lib/algolia/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8a5616a1aa9d89d365371c04b20236bd153937bc86549a340c90f2f996c467b
|
4
|
+
data.tar.gz: f07daa4f630934d9fee7a49d30ec1aaa48ad207799db4e754dad39b0fede65d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45af977700dd17bca72b31970899b2e790a6b51c599177fa254babced3e460ee0d67ca4e7cc6b6f1486a7856b0a275527fe30e44aaf3221c421f4a4b0042cd59
|
7
|
+
data.tar.gz: e8e4fc306aea4b38a5b842061530e4c305900d1b64ba54f701e7f32cdd019a9187076520c640010a1bcf04c79b323ff6e122488e0244c3a63a2b92bd885c6c5f
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## [3.0.0.beta.4](https://github.com/algolia/algoliasearch-client-ruby/compare/3.0.0.beta.3...3.0.0.beta.4)
|
2
|
+
|
3
|
+
- [b2a464a2b](https://github.com/algolia/api-clients-automation/commit/b2a464a2b) feat(clients): add generate_secured_api_key to ruby ([#3166](https://github.com/algolia/api-clients-automation/pull/3166)) by [@millotp](https://github.com/millotp/)
|
4
|
+
- [de4090789](https://github.com/algolia/api-clients-automation/commit/de4090789) fix(clients): safer replaceAllObjects + metis compliant ([#3164](https://github.com/algolia/api-clients-automation/pull/3164)) by [@shortcuts](https://github.com/shortcuts/)
|
5
|
+
|
1
6
|
## [3.0.0.beta.3](https://github.com/algolia/algoliasearch-client-ruby/compare/3.0.0.beta.2...3.0.0.beta.3)
|
2
7
|
|
3
8
|
- [072c38b9a](https://github.com/algolia/api-clients-automation/commit/072c38b9a) fix(clients): remove unused models from lite clients ([#3159](https://github.com/algolia/api-clients-automation/pull/3159)) by [@shortcuts](https://github.com/shortcuts/)
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
<a href="http://stackoverflow.com/questions/tagged/algolia" target="_blank">Stack Overflow</a> •
|
20
20
|
<a href="https://github.com/algolia/algoliasearch-client-ruby/issues" target="_blank">Report a bug</a> •
|
21
21
|
<a href="https://www.algolia.com/doc/api-client/troubleshooting/faq/ruby/" target="_blank">FAQ</a> •
|
22
|
-
<a href="https://
|
22
|
+
<a href="https://alg.li/support" target="_blank">Support</a>
|
23
23
|
</p>
|
24
24
|
|
25
25
|
## ✨ Features
|
@@ -1,5 +1,8 @@
|
|
1
1
|
# Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
|
2
2
|
|
3
|
+
require 'openssl'
|
4
|
+
require 'base64'
|
5
|
+
|
3
6
|
module Algolia
|
4
7
|
class SearchClient
|
5
8
|
attr_accessor :api_client
|
@@ -3129,5 +3132,53 @@ module Algolia
|
|
3129
3132
|
|
3130
3133
|
synonyms unless block_given?
|
3131
3134
|
end
|
3135
|
+
|
3136
|
+
# Helper: Generates a secured API key based on the given `parent_api_key` and given `restrictions`.
|
3137
|
+
#
|
3138
|
+
# @param parent_api_key [String] Parent API key used the generate the secured key
|
3139
|
+
# @param restrictions [SecuredApiKeyRestrictions] Restrictions to apply on the secured key
|
3140
|
+
#
|
3141
|
+
# @return [String]
|
3142
|
+
#
|
3143
|
+
def generate_secured_api_key(parent_api_key, restrictions = {})
|
3144
|
+
restrictions = restrictions.to_hash
|
3145
|
+
if restrictions.key?(:searchParams)
|
3146
|
+
# merge searchParams with the root of the restrictions
|
3147
|
+
|
3148
|
+
restrictions.merge!(restrictions[:searchParams])
|
3149
|
+
restrictions.delete(:searchParams)
|
3150
|
+
end
|
3151
|
+
|
3152
|
+
url_encoded_restrictions = Algolia::Transport.stringify_query_params(restrictions).sort.to_h.map do |key, value|
|
3153
|
+
"#{key}=#{value}"
|
3154
|
+
end.join('&')
|
3155
|
+
|
3156
|
+
hmac = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), parent_api_key, url_encoded_restrictions)
|
3157
|
+
|
3158
|
+
puts "hmac: #{hmac}"
|
3159
|
+
puts "url_encoded_restrictions: #{url_encoded_restrictions}"
|
3160
|
+
Base64.encode64("#{hmac}#{url_encoded_restrictions}").gsub("\n", '')
|
3161
|
+
end
|
3162
|
+
|
3163
|
+
# Helper: Retrieves the remaining validity of the previous generated `secured_api_key`, the `validUntil` parameter must have been provided.
|
3164
|
+
#
|
3165
|
+
# @param secured_api_key [String]
|
3166
|
+
#
|
3167
|
+
# @return [Integer]
|
3168
|
+
#
|
3169
|
+
def get_secured_api_key_remaining_validity(secured_api_key)
|
3170
|
+
now = Time.now.to_i
|
3171
|
+
decoded_key = Base64.decode64(secured_api_key)
|
3172
|
+
regex = 'validUntil=(\d+)'
|
3173
|
+
matches = decoded_key.match(regex)
|
3174
|
+
|
3175
|
+
if matches.nil?
|
3176
|
+
raise AlgoliaError, 'The SecuredApiKey doesn\'t have a validUntil parameter.'
|
3177
|
+
end
|
3178
|
+
|
3179
|
+
valid_until = matches[1].to_i
|
3180
|
+
|
3181
|
+
valid_until - now
|
3182
|
+
end
|
3132
3183
|
end
|
3133
3184
|
end
|
@@ -9,6 +9,13 @@ module Algolia
|
|
9
9
|
CGI.escape(uri).gsub('+', '%20')
|
10
10
|
end
|
11
11
|
|
12
|
+
def self.stringify_query_params(query_params)
|
13
|
+
query_params.to_h do |key, value|
|
14
|
+
value = value.join(',') if value.is_a?(Array)
|
15
|
+
[encode_uri(key.to_s).to_sym, encode_uri(value.to_s)]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
12
19
|
class Transport
|
13
20
|
include RetryOutcomeType
|
14
21
|
include CallType
|
@@ -79,7 +86,7 @@ module Algolia
|
|
79
86
|
request[:method] = method.downcase
|
80
87
|
request[:path] = path
|
81
88
|
request[:body] = build_body(body, request_options)
|
82
|
-
request[:query_params] = stringify_query_params(request_options.query_params)
|
89
|
+
request[:query_params] = Algolia::Transport.stringify_query_params(request_options.query_params)
|
83
90
|
request[:header_params] = generate_header_params(body, request_options)
|
84
91
|
request[:timeout] = request_options.timeout
|
85
92
|
request[:connect_timeout] = request_options.connect_timeout
|
@@ -128,13 +135,6 @@ module Algolia
|
|
128
135
|
@config.write_timeout
|
129
136
|
end
|
130
137
|
end
|
131
|
-
|
132
|
-
def stringify_query_params(query_params)
|
133
|
-
query_params.to_h do |key, value|
|
134
|
-
value = value.join(',') if value.is_a?(Array)
|
135
|
-
[Algolia::Transport.encode_uri(key.to_s).to_sym, Algolia::Transport.encode_uri(value.to_s)]
|
136
|
-
end
|
137
|
-
end
|
138
138
|
end
|
139
139
|
end
|
140
140
|
end
|
data/lib/algolia/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
|
2
2
|
|
3
3
|
module Algolia
|
4
|
-
VERSION = '3.0.0.beta.
|
4
|
+
VERSION = '3.0.0.beta.4'.freeze
|
5
5
|
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: 3.0.0.beta.
|
4
|
+
version: 3.0.0.beta.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- https://alg.li/support
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-06-
|
11
|
+
date: 2024-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|