e_plat 0.7.0 → 0.7.3
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/README.md +11 -7
- data/lib/e_plat/resource/base.rb +2 -1
- data/lib/e_plat/resource/concerns/graph_q_lable.rb +1 -1
- data/lib/e_plat/resource/concerns/overwrite_instance_methods.rb +1 -1
- data/lib/e_plat/resource/platform_specific/shopify/product/variant.rb +1 -1
- data/lib/e_plat/resource/product/image.rb +1 -0
- data/lib/e_plat/resource/product/variant.rb +9 -0
- data/lib/e_plat/version.rb +1 -1
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5577cb6f825d656e170ae63d33c027e9b50080040347496bdf96d3c4f09920c3
|
4
|
+
data.tar.gz: 75cde1f016be6b06f07ba9201655496c7262e47d1611e320193c9d994549561a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12484df951bb9fe2311ceb78e1b6ee3f990a82dcddc06702153da350b14e7b1e3c87180591536e80965eeff731c3a1d63f5012c8dceb8df7e86014c29d95479a
|
7
|
+
data.tar.gz: fe491070587b5284dc61d52db7bea1c2951e38bd6e0847b06d11b19077cf0468b7c35f8a7a19993bfac37632be6c9cabf863a30b76abcfab7c6929d064da26c3
|
data/README.md
CHANGED
@@ -41,11 +41,11 @@ To your gemfile and then run
|
|
41
41
|
You can configure which platform APIs are used by updating the EPlat config: <br/>
|
42
42
|
```ruby
|
43
43
|
#initializers/e_plat.rb
|
44
|
-
EPlat.config.shopify_api_version = "2024-
|
44
|
+
EPlat.config.shopify_api_version = "2024-07"
|
45
45
|
EPlat.config.bigcommerce_api_version = "v3"
|
46
46
|
|
47
|
-
# EPlat.api_display_name.shopify #=> "2024-
|
48
|
-
# EPlat.config.shopify_api_version #=> "
|
47
|
+
# EPlat.api_display_name.shopify #=> "2024-07" # presents as the platform would display in URL paths
|
48
|
+
# EPlat.config.shopify_api_version #=> "2024_07" # coerced interally for creating constants
|
49
49
|
# EPlat.config.print_graphql_requests #=> false # prints out Shopify graphql queries/mutations to the console
|
50
50
|
```
|
51
51
|
<br>
|
@@ -109,7 +109,7 @@ EPlat is designed to let you mostly use it's universal interface, but then easil
|
|
109
109
|
tag.save
|
110
110
|
|
111
111
|
# ...when session is a Shopify store
|
112
|
-
# POST https://preproduct-test.myshopify.com/admin/api/2024-
|
112
|
+
# POST https://preproduct-test.myshopify.com/admin/api/2024-07/script_tags.json
|
113
113
|
# body: '{"script_tag":{"display_scope":"online_store","event":"onload","src":"https://preproduct.io/mini-script.js"}}'
|
114
114
|
#
|
115
115
|
# ...when session is a BigCommerce store
|
@@ -267,6 +267,10 @@ EPlat is designed to let you mostly use it's universal interface, but then easil
|
|
267
267
|
| inventory_quantity | integer | getter only: node.inventoryQuantity | inventory_level | nil |
|
268
268
|
| tax_code | string | * | nil | nil |
|
269
269
|
| requires_shipping | boolean | InventoryItem[requiresShipping] | nil | nil |
|
270
|
+
|
271
|
+
helper methods: <br>
|
272
|
+
`image_src` => `String | nil`, platforms supported: Shopify, Bigcommerce
|
273
|
+
|
270
274
|
*Bigcommerce variant.title= setter is not supported
|
271
275
|
|
272
276
|
|
@@ -290,7 +294,6 @@ EPlat is designed to let you mostly use it's universal interface, but then easil
|
|
290
294
|
| width | integer | * | nil | nil |
|
291
295
|
| height | integer | * | nil | nil |
|
292
296
|
| src | string | * | url_standard | nil |
|
293
|
-
| variant_ids | array | * | nil | nil |
|
294
297
|
|
295
298
|
|
296
299
|
### EPlat::Product::Variant::OptionValue
|
@@ -835,6 +838,7 @@ EPlat::Product.find(my_id).destroy
|
|
835
838
|
product = EPlat::Product.new(title: 't-shirt')
|
836
839
|
product.save # true or false
|
837
840
|
product.errors # active record like errors if .save returned false
|
841
|
+
product.formatted_id #returns the resource ID in the platform's format. i.e. Shopify Product would be "gid://shopify/Product/xxx", Shopify Order would be 123, BC order: 123
|
838
842
|
|
839
843
|
product.full_response # <Net::HTTPOK>
|
840
844
|
product.headers # { "date"=>"Fri, 17 Nov 2023 14:25:53 GMT", ...}
|
@@ -856,8 +860,8 @@ EPlat::Product.find(99, from: "/product/1/specific_url.json") #GET /product/1/sp
|
|
856
860
|
EPlat::Product.count # 2
|
857
861
|
|
858
862
|
# Nested resources - pass in the parent resource's ID to the params hash
|
859
|
-
EPlat::Product::Variant.find(variant_id, params: {product: product.id}) # /admin/api/2024-
|
860
|
-
EPlat::Product::Variant.collection_path(product: 5) # /admin/api/2024-
|
863
|
+
EPlat::Product::Variant.find(variant_id, params: {product: product.id}) # /admin/api/2024-07/products/{{ product.id }}/variants/{{ variant_id }}.json
|
864
|
+
EPlat::Product::Variant.collection_path(product: 5) # /admin/api/2024-07/products/5/variants.json
|
861
865
|
|
862
866
|
|
863
867
|
|
data/lib/e_plat/resource/base.rb
CHANGED
@@ -8,6 +8,7 @@ module EPlat
|
|
8
8
|
|
9
9
|
self.connection_class = EPlat::Connection
|
10
10
|
self.collection_parser = EPlat::Collection
|
11
|
+
self.timeout = 10
|
11
12
|
self.site = "/" # this is overwritten below in initialize_singleton! when EPlat::Session is initialized
|
12
13
|
add_response_method :full_response #full response of the request
|
13
14
|
|
@@ -129,7 +130,7 @@ module EPlat
|
|
129
130
|
top_level_resource?
|
130
131
|
end
|
131
132
|
|
132
|
-
def formatted_id
|
133
|
+
def formatted_id
|
133
134
|
return id unless client.shopify? && client.api_version != "2024_01"
|
134
135
|
return if id.to_s.include?("gid://")
|
135
136
|
|
@@ -236,7 +236,7 @@ module EPlat
|
|
236
236
|
additional_graphql = self.class.before_graphql_callbacks[action.to_sym]&.call(self)
|
237
237
|
input =
|
238
238
|
if action == :delete
|
239
|
-
self.is_a?(EPlat::Product::Variant) ? graphql_input.new(id: formatted_id
|
239
|
+
self.is_a?(EPlat::Product::Variant) ? graphql_input.new(id: formatted_id) : graphql_input.new({id: formatted_id})
|
240
240
|
else
|
241
241
|
graphql_input.new mapping.via_native_attributes_where_possible(self.class.remove_root_from as_json)
|
242
242
|
end
|
@@ -90,7 +90,7 @@ module EPlat
|
|
90
90
|
def unrepresented_collection_ids(key, array_of_hashes)
|
91
91
|
return [] unless client.can_update_nested_resources?
|
92
92
|
|
93
|
-
all_instance_ids = send(key).map{|resource| resource.formatted_id
|
93
|
+
all_instance_ids = send(key).map{|resource| resource.formatted_id} || []
|
94
94
|
represented_instance_ids = array_of_hashes.map{|item| item["id"] }
|
95
95
|
|
96
96
|
all_instance_ids.compact - represented_instance_ids.compact
|
@@ -34,6 +34,15 @@ module EPlat
|
|
34
34
|
prefix_options[:product] ||= try(:product)&.id
|
35
35
|
super
|
36
36
|
end
|
37
|
+
|
38
|
+
def image_src
|
39
|
+
if client.bigcommerce?
|
40
|
+
image_url
|
41
|
+
elsif client.shopify? && client.uses_graphql_for_products?
|
42
|
+
image&.src
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
37
46
|
end
|
38
47
|
end
|
39
48
|
end
|
data/lib/e_plat/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: e_plat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- oliwoodsuk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '2
|
19
|
+
version: '2'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '2'
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '2
|
29
|
+
version: '2'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '2'
|
@@ -36,7 +36,7 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 7.0
|
39
|
+
version: '7.0'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '7.0'
|
@@ -46,7 +46,7 @@ dependencies:
|
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 7.0
|
49
|
+
version: '7.0'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '7.0'
|
@@ -156,7 +156,7 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 1.7
|
159
|
+
version: '1.7'
|
160
160
|
- - ">="
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: '1.0'
|
@@ -166,7 +166,7 @@ dependencies:
|
|
166
166
|
requirements:
|
167
167
|
- - "~>"
|
168
168
|
- !ruby/object:Gem::Version
|
169
|
-
version: 1.7
|
169
|
+
version: '1.7'
|
170
170
|
- - ">="
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: '1.0'
|
@@ -176,7 +176,7 @@ dependencies:
|
|
176
176
|
requirements:
|
177
177
|
- - "~>"
|
178
178
|
- !ruby/object:Gem::Version
|
179
|
-
version: '3
|
179
|
+
version: '3'
|
180
180
|
- - ">="
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: '3'
|
@@ -186,7 +186,7 @@ dependencies:
|
|
186
186
|
requirements:
|
187
187
|
- - "~>"
|
188
188
|
- !ruby/object:Gem::Version
|
189
|
-
version: '3
|
189
|
+
version: '3'
|
190
190
|
- - ">="
|
191
191
|
- !ruby/object:Gem::Version
|
192
192
|
version: '3'
|
@@ -196,7 +196,7 @@ dependencies:
|
|
196
196
|
requirements:
|
197
197
|
- - "~>"
|
198
198
|
- !ruby/object:Gem::Version
|
199
|
-
version: '6
|
199
|
+
version: '6'
|
200
200
|
- - ">="
|
201
201
|
- !ruby/object:Gem::Version
|
202
202
|
version: 6.0.0
|
@@ -206,7 +206,7 @@ dependencies:
|
|
206
206
|
requirements:
|
207
207
|
- - "~>"
|
208
208
|
- !ruby/object:Gem::Version
|
209
|
-
version: '6
|
209
|
+
version: '6'
|
210
210
|
- - ">="
|
211
211
|
- !ruby/object:Gem::Version
|
212
212
|
version: 6.0.0
|
@@ -216,7 +216,7 @@ dependencies:
|
|
216
216
|
requirements:
|
217
217
|
- - "~>"
|
218
218
|
- !ruby/object:Gem::Version
|
219
|
-
version: '2
|
219
|
+
version: '2'
|
220
220
|
- - ">="
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '2'
|
@@ -226,7 +226,7 @@ dependencies:
|
|
226
226
|
requirements:
|
227
227
|
- - "~>"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: '2
|
229
|
+
version: '2'
|
230
230
|
- - ">="
|
231
231
|
- !ruby/object:Gem::Version
|
232
232
|
version: '2'
|
@@ -236,7 +236,7 @@ dependencies:
|
|
236
236
|
requirements:
|
237
237
|
- - "~>"
|
238
238
|
- !ruby/object:Gem::Version
|
239
|
-
version: 0.16
|
239
|
+
version: '0.16'
|
240
240
|
- - ">="
|
241
241
|
- !ruby/object:Gem::Version
|
242
242
|
version: 0.1.0
|
@@ -246,7 +246,7 @@ dependencies:
|
|
246
246
|
requirements:
|
247
247
|
- - "~>"
|
248
248
|
- !ruby/object:Gem::Version
|
249
|
-
version: 0.16
|
249
|
+
version: '0.16'
|
250
250
|
- - ">="
|
251
251
|
- !ruby/object:Gem::Version
|
252
252
|
version: 0.1.0
|