algolia 3.0.0.beta.9 → 3.0.0.beta.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +4 -2
- data/lib/algolia/api/search_client.rb +15 -15
- data/lib/algolia/models/ingestion/source_shopify.rb +10 -77
- data/lib/algolia/models/ingestion/source_update_shopify.rb +10 -76
- data/lib/algolia/models/recommend/get_recommendations_response.rb +2 -0
- data/lib/algolia/models/recommend/trending_items.rb +0 -4
- data/lib/algolia/models/recommend/trending_items_query.rb +0 -4
- data/lib/algolia/transport/transport.rb +1 -1
- 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: d7cbf50c75d055b57b0fa11bce17057254adef6028335af00245734751edc19a
|
4
|
+
data.tar.gz: 369df07cdd8f04bb2343803c7623a58daa861f769fe506058259aaddf1aa8694
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a4bdd4248cc355064dfa72e9220d8ebc097da6075383373ebad2269e7e320d982f0a2a430692ea35de6fa12e632e7fd404eeee307a00e66f012912918642510
|
7
|
+
data.tar.gz: 6d4cdfbcc8310402a0e26e4a17c45df391f7fa2b4227053853b6c910daa3a95951133c42140f74518358de1efbedcca47851beef796705750ec306b74cf11236
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [3.0.0.beta.10](https://github.com/algolia/algoliasearch-client-ruby/compare/3.0.0.beta.9...3.0.0.beta.10)
|
2
|
+
|
3
|
+
- [280037178](https://github.com/algolia/api-clients-automation/commit/280037178) fix(specs): update shopify feature flags ([#3380](https://github.com/algolia/api-clients-automation/pull/3380)) by [@millotp](https://github.com/millotp/)
|
4
|
+
- [a68907d1c](https://github.com/algolia/api-clients-automation/commit/a68907d1c) feat(clients): add api key helper test ([#3338](https://github.com/algolia/api-clients-automation/pull/3338)) by [@Fluf22](https://github.com/Fluf22/)
|
5
|
+
- [31ba7f6d0](https://github.com/algolia/api-clients-automation/commit/31ba7f6d0) fix(specs): recommend non required parameters ([#3355](https://github.com/algolia/api-clients-automation/pull/3355)) by [@shortcuts](https://github.com/shortcuts/)
|
6
|
+
- [337eea93e](https://github.com/algolia/api-clients-automation/commit/337eea93e) fix(specs): results is required in GetRecommendationsResponse ([#3357](https://github.com/algolia/api-clients-automation/pull/3357)) by [@millotp](https://github.com/millotp/)
|
7
|
+
|
1
8
|
## [3.0.0.beta.9](https://github.com/algolia/algoliasearch-client-ruby/compare/3.0.0.beta.8...3.0.0.beta.9)
|
2
9
|
|
3
10
|
- [a009967f6](https://github.com/algolia/api-clients-automation/commit/a009967f6) fix(specs): browse response required properties ([#3348](https://github.com/algolia/api-clients-automation/pull/3348)) by [@millotp](https://github.com/millotp/)
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
algolia (3.0.0.beta.
|
4
|
+
algolia (3.0.0.beta.10)
|
5
5
|
base64 (>= 0.2.0, < 1)
|
6
6
|
faraday (>= 1.0.1, < 3.0)
|
7
7
|
faraday-net_http_persistent (>= 0.15, < 3)
|
@@ -12,13 +12,15 @@ GEM
|
|
12
12
|
specs:
|
13
13
|
base64 (0.2.0)
|
14
14
|
connection_pool (2.4.1)
|
15
|
-
faraday (2.
|
15
|
+
faraday (2.10.0)
|
16
16
|
faraday-net_http (>= 2.0, < 3.2)
|
17
|
+
logger
|
17
18
|
faraday-net_http (3.1.0)
|
18
19
|
net-http
|
19
20
|
faraday-net_http_persistent (2.1.0)
|
20
21
|
faraday (~> 2.5)
|
21
22
|
net-http-persistent (~> 4.0)
|
23
|
+
logger (1.6.0)
|
22
24
|
net-http (0.4.1)
|
23
25
|
uri
|
24
26
|
net-http-persistent (4.0.2)
|
@@ -3179,16 +3179,16 @@ module Algolia
|
|
3179
3179
|
|
3180
3180
|
# Helper: Wait for an API key to be added, updated or deleted based on a given `operation`.
|
3181
3181
|
#
|
3182
|
-
# @param operation [String] the `operation` that was done on a `key`.
|
3183
3182
|
# @param key [String] the `key` that has been added, deleted or updated.
|
3183
|
+
# @param operation [String] the `operation` that was done on a `key`.
|
3184
3184
|
# @param api_key [Hash] necessary to know if an `update` operation has been processed, compare fields of the response with it.
|
3185
3185
|
# @param max_retries [Integer] the maximum number of retries.
|
3186
3186
|
# @param timeout [Proc] the function to decide how long to wait between retries.
|
3187
3187
|
# @param request_options [Hash] the requestOptions to send along with the query, they will be forwarded to the `getApikey` method and merged with the transporter requestOptions.
|
3188
3188
|
# @return [Http::Response] the last get_api_key response
|
3189
3189
|
def wait_for_api_key(
|
3190
|
-
operation,
|
3191
3190
|
key,
|
3191
|
+
operation,
|
3192
3192
|
api_key = {},
|
3193
3193
|
max_retries = 50,
|
3194
3194
|
timeout = -> (retry_count) { [retry_count * 200, 5000].min },
|
@@ -3198,19 +3198,15 @@ module Algolia
|
|
3198
3198
|
if operation == "update"
|
3199
3199
|
raise ArgumentError, "`api_key` is required when waiting for an `update` operation." if api_key.nil?
|
3200
3200
|
while retries < max_retries
|
3201
|
-
|
3202
|
-
|
3203
|
-
|
3204
|
-
|
3205
|
-
|
3206
|
-
equals &&= updated_key_hash[k] == v
|
3207
|
-
end
|
3208
|
-
|
3209
|
-
return updatad_key if equals
|
3210
|
-
rescue AlgoliaError => e
|
3211
|
-
raise e unless e.code == 404
|
3201
|
+
updated_key = get_api_key(key, request_options)
|
3202
|
+
updated_key_hash = updated_key.to_hash
|
3203
|
+
equals = true
|
3204
|
+
api_key.to_hash.each do |k, v|
|
3205
|
+
equals &&= updated_key_hash[k] == v
|
3212
3206
|
end
|
3213
3207
|
|
3208
|
+
return updated_key if equals
|
3209
|
+
|
3214
3210
|
retries += 1
|
3215
3211
|
sleep(timeout.call(retries) / 1000.0)
|
3216
3212
|
end
|
@@ -3222,8 +3218,12 @@ module Algolia
|
|
3222
3218
|
begin
|
3223
3219
|
res = get_api_key(key, request_options)
|
3224
3220
|
return res if operation == "add"
|
3225
|
-
rescue
|
3226
|
-
|
3221
|
+
rescue AlgoliaHttpError => e
|
3222
|
+
if e.code == 404
|
3223
|
+
return nil if operation == "delete"
|
3224
|
+
else
|
3225
|
+
raise e
|
3226
|
+
end
|
3227
3227
|
end
|
3228
3228
|
|
3229
3229
|
retries += 1
|
@@ -6,26 +6,8 @@ require "time"
|
|
6
6
|
module Algolia
|
7
7
|
module Ingestion
|
8
8
|
class SourceShopify
|
9
|
-
#
|
10
|
-
attr_accessor :
|
11
|
-
|
12
|
-
# Whether to increase the number of indexed collections per product. If true, Algolia indexes 200 collections per product. If false, 100 collections per product are indexed.
|
13
|
-
attr_accessor :increase_product_collection_limit
|
14
|
-
|
15
|
-
# Whether to set the default price ratio to 1 if no sale price is present. The price ratio is determined by the ratio: `sale_price` / `regular_price`. If no sale price is present, the price ratio would be 0. If `defaultPriceRatioAsOne` is true, the price ratio is indexed as 1 instead.
|
16
|
-
attr_accessor :default_price_ratio_as_one
|
17
|
-
|
18
|
-
# Whether to exclude out-of-stock variants when determining the `max_variant_price` and `min_variant_price` attributes.
|
19
|
-
attr_accessor :exclude_oos_variants_for_price_at_trs
|
20
|
-
|
21
|
-
# Whether to include an inventory with every variant for every product record.
|
22
|
-
attr_accessor :include_variants_inventory
|
23
|
-
|
24
|
-
# Whether to include collection IDs and handles in the product records.
|
25
|
-
attr_accessor :has_collection_search_page
|
26
|
-
|
27
|
-
# Whether to convert tags on products to named tags. To learn more, see [Named tags](https://www.algolia.com/doc/integration/shopify/sending-and-managing-data/named-tags).
|
28
|
-
attr_accessor :product_named_tags
|
9
|
+
# Feature flags for the Shopify source.
|
10
|
+
attr_accessor :feature_flags
|
29
11
|
|
30
12
|
# URL of the Shopify store.
|
31
13
|
attr_accessor :shop_url
|
@@ -33,13 +15,7 @@ module Algolia
|
|
33
15
|
# Attribute mapping from ruby-style variable name to JSON key.
|
34
16
|
def self.attribute_map
|
35
17
|
{
|
36
|
-
:
|
37
|
-
:increase_product_collection_limit => :increaseProductCollectionLimit,
|
38
|
-
:default_price_ratio_as_one => :defaultPriceRatioAsOne,
|
39
|
-
:exclude_oos_variants_for_price_at_trs => :excludeOOSVariantsForPriceAtTRS,
|
40
|
-
:include_variants_inventory => :includeVariantsInventory,
|
41
|
-
:has_collection_search_page => :hasCollectionSearchPage,
|
42
|
-
:product_named_tags => :productNamedTags,
|
18
|
+
:feature_flags => :featureFlags,
|
43
19
|
:shop_url => :shopURL
|
44
20
|
}
|
45
21
|
end
|
@@ -52,13 +28,7 @@ module Algolia
|
|
52
28
|
# Attribute type mapping.
|
53
29
|
def self.types_mapping
|
54
30
|
{
|
55
|
-
:
|
56
|
-
:increase_product_collection_limit => :"Boolean",
|
57
|
-
:default_price_ratio_as_one => :"Boolean",
|
58
|
-
:exclude_oos_variants_for_price_at_trs => :"Boolean",
|
59
|
-
:include_variants_inventory => :"Boolean",
|
60
|
-
:has_collection_search_page => :"Boolean",
|
61
|
-
:product_named_tags => :"Boolean",
|
31
|
+
:feature_flags => :"Hash<String, Object>",
|
62
32
|
:shop_url => :"String"
|
63
33
|
}
|
64
34
|
end
|
@@ -101,32 +71,10 @@ module Algolia
|
|
101
71
|
h[k.to_sym] = v
|
102
72
|
}
|
103
73
|
|
104
|
-
if attributes.key?(:
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
if attributes.key?(:increase_product_collection_limit)
|
109
|
-
self.increase_product_collection_limit = attributes[:increase_product_collection_limit]
|
110
|
-
end
|
111
|
-
|
112
|
-
if attributes.key?(:default_price_ratio_as_one)
|
113
|
-
self.default_price_ratio_as_one = attributes[:default_price_ratio_as_one]
|
114
|
-
end
|
115
|
-
|
116
|
-
if attributes.key?(:exclude_oos_variants_for_price_at_trs)
|
117
|
-
self.exclude_oos_variants_for_price_at_trs = attributes[:exclude_oos_variants_for_price_at_trs]
|
118
|
-
end
|
119
|
-
|
120
|
-
if attributes.key?(:include_variants_inventory)
|
121
|
-
self.include_variants_inventory = attributes[:include_variants_inventory]
|
122
|
-
end
|
123
|
-
|
124
|
-
if attributes.key?(:has_collection_search_page)
|
125
|
-
self.has_collection_search_page = attributes[:has_collection_search_page]
|
126
|
-
end
|
127
|
-
|
128
|
-
if attributes.key?(:product_named_tags)
|
129
|
-
self.product_named_tags = attributes[:product_named_tags]
|
74
|
+
if attributes.key?(:feature_flags)
|
75
|
+
if (value = attributes[:feature_flags]).is_a?(Hash)
|
76
|
+
self.feature_flags = value
|
77
|
+
end
|
130
78
|
end
|
131
79
|
|
132
80
|
if attributes.key?(:shop_url)
|
@@ -141,13 +89,7 @@ module Algolia
|
|
141
89
|
def ==(other)
|
142
90
|
return true if self.equal?(other)
|
143
91
|
self.class == other.class &&
|
144
|
-
|
145
|
-
increase_product_collection_limit == other.increase_product_collection_limit &&
|
146
|
-
default_price_ratio_as_one == other.default_price_ratio_as_one &&
|
147
|
-
exclude_oos_variants_for_price_at_trs == other.exclude_oos_variants_for_price_at_trs &&
|
148
|
-
include_variants_inventory == other.include_variants_inventory &&
|
149
|
-
has_collection_search_page == other.has_collection_search_page &&
|
150
|
-
product_named_tags == other.product_named_tags &&
|
92
|
+
feature_flags == other.feature_flags &&
|
151
93
|
shop_url == other.shop_url
|
152
94
|
end
|
153
95
|
|
@@ -160,16 +102,7 @@ module Algolia
|
|
160
102
|
# Calculates hash code according to all attributes.
|
161
103
|
# @return [Integer] Hash code
|
162
104
|
def hash
|
163
|
-
[
|
164
|
-
collection_id_indexing,
|
165
|
-
increase_product_collection_limit,
|
166
|
-
default_price_ratio_as_one,
|
167
|
-
exclude_oos_variants_for_price_at_trs,
|
168
|
-
include_variants_inventory,
|
169
|
-
has_collection_search_page,
|
170
|
-
product_named_tags,
|
171
|
-
shop_url
|
172
|
-
].hash
|
105
|
+
[feature_flags, shop_url].hash
|
173
106
|
end
|
174
107
|
|
175
108
|
# Builds the object from hash
|
@@ -6,37 +6,13 @@ require "time"
|
|
6
6
|
module Algolia
|
7
7
|
module Ingestion
|
8
8
|
class SourceUpdateShopify
|
9
|
-
#
|
10
|
-
attr_accessor :
|
11
|
-
|
12
|
-
# Whether to increase the number of indexed collections per product. If true, Algolia indexes 200 collections per product. If false, 100 collections per product are indexed.
|
13
|
-
attr_accessor :increase_product_collection_limit
|
14
|
-
|
15
|
-
# Whether to set the default price ratio to 1 if no sale price is present. The price ratio is determined by the ratio: `sale_price` / `regular_price`. If no sale price is present, the price ratio would be 0. If `defaultPriceRatioAsOne` is true, the price ratio is indexed as 1 instead.
|
16
|
-
attr_accessor :default_price_ratio_as_one
|
17
|
-
|
18
|
-
# Whether to exclude out-of-stock variants when determining the `max_variant_price` and `min_variant_price` attributes.
|
19
|
-
attr_accessor :exclude_oos_variants_for_price_at_trs
|
20
|
-
|
21
|
-
# Whether to include an inventory with every variant for every product record.
|
22
|
-
attr_accessor :include_variants_inventory
|
23
|
-
|
24
|
-
# Whether to include collection IDs and handles in the product records.
|
25
|
-
attr_accessor :has_collection_search_page
|
26
|
-
|
27
|
-
# Whether to convert tags on products to named tags. To learn more, see [Named tags](https://www.algolia.com/doc/integration/shopify/sending-and-managing-data/named-tags).
|
28
|
-
attr_accessor :product_named_tags
|
9
|
+
# Feature flags for the Shopify source.
|
10
|
+
attr_accessor :feature_flags
|
29
11
|
|
30
12
|
# Attribute mapping from ruby-style variable name to JSON key.
|
31
13
|
def self.attribute_map
|
32
14
|
{
|
33
|
-
:
|
34
|
-
:increase_product_collection_limit => :increaseProductCollectionLimit,
|
35
|
-
:default_price_ratio_as_one => :defaultPriceRatioAsOne,
|
36
|
-
:exclude_oos_variants_for_price_at_trs => :excludeOOSVariantsForPriceAtTRS,
|
37
|
-
:include_variants_inventory => :includeVariantsInventory,
|
38
|
-
:has_collection_search_page => :hasCollectionSearchPage,
|
39
|
-
:product_named_tags => :productNamedTags
|
15
|
+
:feature_flags => :featureFlags
|
40
16
|
}
|
41
17
|
end
|
42
18
|
|
@@ -48,13 +24,7 @@ module Algolia
|
|
48
24
|
# Attribute type mapping.
|
49
25
|
def self.types_mapping
|
50
26
|
{
|
51
|
-
:
|
52
|
-
:increase_product_collection_limit => :"Boolean",
|
53
|
-
:default_price_ratio_as_one => :"Boolean",
|
54
|
-
:exclude_oos_variants_for_price_at_trs => :"Boolean",
|
55
|
-
:include_variants_inventory => :"Boolean",
|
56
|
-
:has_collection_search_page => :"Boolean",
|
57
|
-
:product_named_tags => :"Boolean"
|
27
|
+
:feature_flags => :"Hash<String, Object>"
|
58
28
|
}
|
59
29
|
end
|
60
30
|
|
@@ -88,32 +58,10 @@ module Algolia
|
|
88
58
|
h[k.to_sym] = v
|
89
59
|
}
|
90
60
|
|
91
|
-
if attributes.key?(:
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
if attributes.key?(:increase_product_collection_limit)
|
96
|
-
self.increase_product_collection_limit = attributes[:increase_product_collection_limit]
|
97
|
-
end
|
98
|
-
|
99
|
-
if attributes.key?(:default_price_ratio_as_one)
|
100
|
-
self.default_price_ratio_as_one = attributes[:default_price_ratio_as_one]
|
101
|
-
end
|
102
|
-
|
103
|
-
if attributes.key?(:exclude_oos_variants_for_price_at_trs)
|
104
|
-
self.exclude_oos_variants_for_price_at_trs = attributes[:exclude_oos_variants_for_price_at_trs]
|
105
|
-
end
|
106
|
-
|
107
|
-
if attributes.key?(:include_variants_inventory)
|
108
|
-
self.include_variants_inventory = attributes[:include_variants_inventory]
|
109
|
-
end
|
110
|
-
|
111
|
-
if attributes.key?(:has_collection_search_page)
|
112
|
-
self.has_collection_search_page = attributes[:has_collection_search_page]
|
113
|
-
end
|
114
|
-
|
115
|
-
if attributes.key?(:product_named_tags)
|
116
|
-
self.product_named_tags = attributes[:product_named_tags]
|
61
|
+
if attributes.key?(:feature_flags)
|
62
|
+
if (value = attributes[:feature_flags]).is_a?(Hash)
|
63
|
+
self.feature_flags = value
|
64
|
+
end
|
117
65
|
end
|
118
66
|
end
|
119
67
|
|
@@ -122,13 +70,7 @@ module Algolia
|
|
122
70
|
def ==(other)
|
123
71
|
return true if self.equal?(other)
|
124
72
|
self.class == other.class &&
|
125
|
-
|
126
|
-
increase_product_collection_limit == other.increase_product_collection_limit &&
|
127
|
-
default_price_ratio_as_one == other.default_price_ratio_as_one &&
|
128
|
-
exclude_oos_variants_for_price_at_trs == other.exclude_oos_variants_for_price_at_trs &&
|
129
|
-
include_variants_inventory == other.include_variants_inventory &&
|
130
|
-
has_collection_search_page == other.has_collection_search_page &&
|
131
|
-
product_named_tags == other.product_named_tags
|
73
|
+
feature_flags == other.feature_flags
|
132
74
|
end
|
133
75
|
|
134
76
|
# @see the `==` method
|
@@ -140,15 +82,7 @@ module Algolia
|
|
140
82
|
# Calculates hash code according to all attributes.
|
141
83
|
# @return [Integer] Hash code
|
142
84
|
def hash
|
143
|
-
[
|
144
|
-
collection_id_indexing,
|
145
|
-
increase_product_collection_limit,
|
146
|
-
default_price_ratio_as_one,
|
147
|
-
exclude_oos_variants_for_price_at_trs,
|
148
|
-
include_variants_inventory,
|
149
|
-
has_collection_search_page,
|
150
|
-
product_named_tags
|
151
|
-
].hash
|
85
|
+
[feature_flags].hash
|
152
86
|
end
|
153
87
|
|
154
88
|
# Builds the object from hash
|
@@ -95,14 +95,10 @@ module Algolia
|
|
95
95
|
|
96
96
|
if attributes.key?(:facet_name)
|
97
97
|
self.facet_name = attributes[:facet_name]
|
98
|
-
else
|
99
|
-
self.facet_name = nil
|
100
98
|
end
|
101
99
|
|
102
100
|
if attributes.key?(:facet_value)
|
103
101
|
self.facet_value = attributes[:facet_value]
|
104
|
-
else
|
105
|
-
self.facet_value = nil
|
106
102
|
end
|
107
103
|
|
108
104
|
if attributes.key?(:model)
|
@@ -142,14 +142,10 @@ module Algolia
|
|
142
142
|
|
143
143
|
if attributes.key?(:facet_name)
|
144
144
|
self.facet_name = attributes[:facet_name]
|
145
|
-
else
|
146
|
-
self.facet_name = nil
|
147
145
|
end
|
148
146
|
|
149
147
|
if attributes.key?(:facet_value)
|
150
148
|
self.facet_value = attributes[:facet_value]
|
151
|
-
else
|
152
|
-
self.facet_value = nil
|
153
149
|
end
|
154
150
|
|
155
151
|
if attributes.key?(:model)
|
@@ -68,7 +68,7 @@ module Algolia
|
|
68
68
|
)
|
69
69
|
if outcome == FAILURE
|
70
70
|
decoded_error = JSON.parse(response.error, :symbolize_names => true)
|
71
|
-
raise Algolia::AlgoliaHttpError.new(
|
71
|
+
raise Algolia::AlgoliaHttpError.new(response.status, decoded_error[:message])
|
72
72
|
end
|
73
73
|
|
74
74
|
return response unless outcome == RETRY
|
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.10".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.10
|
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-07-
|
11
|
+
date: 2024-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|