e_plat 0.3.0 → 0.4.0
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 +630 -131
- data/lib/active_resource/connection_error.rb +29 -0
- data/lib/active_resource/formats.rb +27 -0
- data/lib/current.rb +1 -1
- data/lib/e_plat/client/default_request_args.rb +27 -3
- data/lib/e_plat/client.rb +114 -87
- data/lib/e_plat/connection.rb +4 -0
- data/lib/e_plat/mapping/base.rb +119 -12
- data/lib/e_plat/mapping/bigcommerce/v_3/metafield.rb +62 -0
- data/lib/e_plat/mapping/bigcommerce/v_3/order/billing_address.rb +14 -0
- data/lib/e_plat/mapping/bigcommerce/v_3/order/line_item.rb +85 -0
- data/lib/e_plat/mapping/bigcommerce/v_3/order/shipping_address.rb +73 -0
- data/lib/e_plat/mapping/bigcommerce/v_3/order.rb +160 -0
- data/lib/e_plat/mapping/bigcommerce/v_3/product/image.rb +12 -12
- data/lib/e_plat/mapping/bigcommerce/v_3/product/variant.rb +1 -1
- data/lib/e_plat/mapping/bigcommerce/v_3/script_tag.rb +78 -0
- data/lib/e_plat/mapping/bigcommerce/v_3/shop.rb +11 -6
- data/lib/e_plat/mapping/bigcommerce/v_3/webhook.rb +54 -0
- data/lib/e_plat/mapping/request_body_root.rb +38 -0
- data/lib/e_plat/mapping/shopify/v_2024_01/metafield.rb +26 -0
- data/lib/e_plat/mapping/shopify/v_2024_01/order/billing_address.rb +14 -0
- data/lib/e_plat/mapping/shopify/v_2024_01/order/shipping_address.rb +30 -0
- data/lib/e_plat/mapping/shopify/{v_2022_07/product.rb → v_2024_01/order.rb} +3 -3
- data/lib/e_plat/mapping/shopify/{v_2022_07 → v_2024_01}/product/image.rb +1 -1
- data/lib/e_plat/mapping/shopify/{v_2022_07 → v_2024_01}/product/variant.rb +2 -1
- data/lib/e_plat/mapping/shopify/v_2024_01/product.rb +26 -0
- data/lib/e_plat/mapping/shopify/v_2024_01/script_tag.rb +26 -0
- data/lib/e_plat/mapping/shopify/{v_2022_07 → v_2024_01}/shop.rb +1 -1
- data/lib/e_plat/mapping/shopify/v_2024_01/webhook.rb +29 -0
- data/lib/e_plat/mapping/virtual_collection/base.rb +14 -0
- data/lib/e_plat/mapping/virtual_collection/bigcommerce/order_line_items.rb +297 -0
- data/lib/e_plat/mapping.rb +3 -3
- data/lib/e_plat/resource/attribute_interface.rb +28 -28
- data/lib/e_plat/resource/base.rb +107 -66
- data/lib/e_plat/resource/collection.rb +92 -0
- data/lib/e_plat/resource/concerns/aliases.rb +102 -18
- data/lib/e_plat/resource/concerns/dirty.rb +54 -0
- data/lib/e_plat/resource/concerns/metafieldable.rb +43 -0
- data/lib/e_plat/resource/concerns/overwrite_instance_methods.rb +108 -6
- data/lib/e_plat/resource/concerns/overwrite_request_methods.rb +73 -37
- data/lib/e_plat/resource/countable.rb +43 -0
- data/lib/e_plat/resource/metafield.rb +70 -0
- data/lib/e_plat/resource/order/Consignment.rb +8 -0
- data/lib/e_plat/resource/order/billing_address.rb +6 -0
- data/lib/e_plat/resource/order/fulfillment.rb +1 -0
- data/lib/e_plat/resource/order/line_item.rb +1 -0
- data/lib/e_plat/resource/order/shipping_address.rb +44 -0
- data/lib/e_plat/resource/order/shipping_line.rb +15 -14
- data/lib/e_plat/resource/order.rb +32 -0
- data/lib/e_plat/resource/paginated/link_headers.rb +42 -0
- data/lib/e_plat/resource/paginated/link_params.rb +26 -0
- data/lib/e_plat/resource/product/image.rb +6 -0
- data/lib/e_plat/resource/product/option.rb +1 -0
- data/lib/e_plat/resource/product/variant.rb +8 -12
- data/lib/e_plat/resource/product.rb +8 -2
- data/lib/e_plat/resource/script_tag.rb +56 -0
- data/lib/e_plat/resource/shop.rb +17 -13
- data/lib/e_plat/resource/shopify_only/recurring_application_charge/usage_charge.rb +32 -0
- data/lib/e_plat/resource/shopify_only/recurring_application_charge.rb +47 -0
- data/lib/e_plat/resource/webhook.rb +50 -0
- data/lib/e_plat/session.rb +10 -7
- data/lib/e_plat/type_coercer.rb +15 -17
- data/lib/e_plat/version.rb +1 -1
- data/lib/e_plat.rb +4 -3
- metadata +55 -9
- data/lib/e_plat/resource/order/customer.rb +0 -37
data/lib/e_plat/type_coercer.rb
CHANGED
@@ -20,25 +20,27 @@ module EPlat
|
|
20
20
|
elsif value.nil?
|
21
21
|
return unless type == "array" or type == "hash"
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
|
+
safe_coerce(value, type)
|
25
|
+
end
|
26
|
+
|
27
|
+
def safe_coerce(value, type)
|
24
28
|
case type
|
25
|
-
when "array"
|
26
|
-
safe_coerce(value, type)
|
27
|
-
when "hash"
|
28
|
-
safe_coerce(value, type)
|
29
|
-
when "string"
|
30
|
-
safe_coerce(value, type)
|
31
|
-
when "datetime"
|
32
|
-
safe_coerce(value, type)
|
33
29
|
when "boolean"
|
34
30
|
ActiveModel::Type::Boolean.new.cast(value)
|
35
|
-
|
31
|
+
when "integer"
|
36
32
|
"EPlat::Types::Coercible::#{ type.capitalize }".constantize[value]
|
33
|
+
else
|
34
|
+
value.send to_type_method(type)
|
37
35
|
end
|
36
|
+
rescue
|
37
|
+
value
|
38
38
|
end
|
39
|
+
|
39
40
|
|
40
|
-
|
41
|
-
|
41
|
+
private
|
42
|
+
|
43
|
+
def to_type_method(type)
|
42
44
|
case type
|
43
45
|
when "array"
|
44
46
|
"to_a"
|
@@ -49,11 +51,7 @@ module EPlat
|
|
49
51
|
when "datetime"
|
50
52
|
"to_datetime"
|
51
53
|
end
|
52
|
-
|
53
|
-
value.send(to_type_method)
|
54
|
-
rescue
|
55
|
-
value
|
56
|
-
end
|
54
|
+
end
|
57
55
|
|
58
56
|
end
|
59
57
|
end
|
data/lib/e_plat/version.rb
CHANGED
data/lib/e_plat.rb
CHANGED
@@ -4,13 +4,15 @@ require "zeitwerk"
|
|
4
4
|
|
5
5
|
require "active_support"
|
6
6
|
require "activeresource"
|
7
|
-
|
7
|
+
require "activeresource-response"
|
8
8
|
require 'dry-types'
|
9
|
+
require 'active_resource/connection_error'
|
9
10
|
# require "e_plat/railtie" if defined?(Rails::Railtie)
|
10
11
|
|
11
12
|
Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
|
12
13
|
loader = Zeitwerk::Loader.for_gem
|
13
14
|
loader.collapse("#{__dir__}/e_plat/resource") # So can call EPlat::Product
|
15
|
+
loader.collapse("#{__dir__}/e_plat/resource/shopify_only")
|
14
16
|
loader.collapse("#{__dir__}/e_plat/errors")
|
15
17
|
loader.setup # ready!
|
16
18
|
|
@@ -19,10 +21,9 @@ loader.setup # ready!
|
|
19
21
|
module EPlat
|
20
22
|
extend Dry::Configurable
|
21
23
|
|
22
|
-
setting(:shopify_api_version, default: "
|
24
|
+
setting(:shopify_api_version, default: "2024_01", constructor: ->(value) { value.underscore })
|
23
25
|
setting(:bigcommerce_api_version, default: "v3", constructor: ->(value) { value.downcase.gsub("v", "") })
|
24
26
|
setting(:woocommerce_api_version, default: "v3", constructor: ->(value) { value.downcase.gsub("v", "") })
|
25
27
|
|
26
|
-
|
27
28
|
class Error < StandardError; end
|
28
29
|
end
|
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- oliwoodsuk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 6.0.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 6.0.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: dry-configurable
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +164,20 @@ dependencies:
|
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: ruby-lsp
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
167
181
|
description:
|
168
182
|
email:
|
169
183
|
- 55204545+oliwoodsuk@users.noreply.github.com
|
@@ -176,41 +190,73 @@ files:
|
|
176
190
|
- Rakefile
|
177
191
|
- app/assets/config/e_plat_manifest.js
|
178
192
|
- config/routes.rb
|
193
|
+
- lib/active_resource/connection_error.rb
|
194
|
+
- lib/active_resource/formats.rb
|
179
195
|
- lib/active_resource/schema.rb
|
180
196
|
- lib/current.rb
|
181
197
|
- lib/e_plat.rb
|
182
198
|
- lib/e_plat/client.rb
|
183
199
|
- lib/e_plat/client/default_request_args.rb
|
184
200
|
- lib/e_plat/client/platform_convenience_methods.rb
|
201
|
+
- lib/e_plat/connection.rb
|
185
202
|
- lib/e_plat/engine.rb
|
186
203
|
- lib/e_plat/errors/incorrect_type_error.rb
|
187
204
|
- lib/e_plat/errors/missing_migration_key_error.rb
|
188
205
|
- lib/e_plat/errors/missing_session_error.rb
|
189
206
|
- lib/e_plat/mapping.rb
|
190
207
|
- lib/e_plat/mapping/base.rb
|
208
|
+
- lib/e_plat/mapping/bigcommerce/v_3/metafield.rb
|
209
|
+
- lib/e_plat/mapping/bigcommerce/v_3/order.rb
|
210
|
+
- lib/e_plat/mapping/bigcommerce/v_3/order/billing_address.rb
|
211
|
+
- lib/e_plat/mapping/bigcommerce/v_3/order/line_item.rb
|
212
|
+
- lib/e_plat/mapping/bigcommerce/v_3/order/shipping_address.rb
|
191
213
|
- lib/e_plat/mapping/bigcommerce/v_3/product.rb
|
192
214
|
- lib/e_plat/mapping/bigcommerce/v_3/product/image.rb
|
193
215
|
- lib/e_plat/mapping/bigcommerce/v_3/product/variant.rb
|
216
|
+
- lib/e_plat/mapping/bigcommerce/v_3/script_tag.rb
|
194
217
|
- lib/e_plat/mapping/bigcommerce/v_3/shop.rb
|
195
|
-
- lib/e_plat/mapping/
|
196
|
-
- lib/e_plat/mapping/
|
197
|
-
- lib/e_plat/mapping/shopify/
|
198
|
-
- lib/e_plat/mapping/shopify/
|
218
|
+
- lib/e_plat/mapping/bigcommerce/v_3/webhook.rb
|
219
|
+
- lib/e_plat/mapping/request_body_root.rb
|
220
|
+
- lib/e_plat/mapping/shopify/v_2024_01/metafield.rb
|
221
|
+
- lib/e_plat/mapping/shopify/v_2024_01/order.rb
|
222
|
+
- lib/e_plat/mapping/shopify/v_2024_01/order/billing_address.rb
|
223
|
+
- lib/e_plat/mapping/shopify/v_2024_01/order/shipping_address.rb
|
224
|
+
- lib/e_plat/mapping/shopify/v_2024_01/product.rb
|
225
|
+
- lib/e_plat/mapping/shopify/v_2024_01/product/image.rb
|
226
|
+
- lib/e_plat/mapping/shopify/v_2024_01/product/variant.rb
|
227
|
+
- lib/e_plat/mapping/shopify/v_2024_01/script_tag.rb
|
228
|
+
- lib/e_plat/mapping/shopify/v_2024_01/shop.rb
|
229
|
+
- lib/e_plat/mapping/shopify/v_2024_01/webhook.rb
|
230
|
+
- lib/e_plat/mapping/virtual_collection/base.rb
|
231
|
+
- lib/e_plat/mapping/virtual_collection/bigcommerce/order_line_items.rb
|
199
232
|
- lib/e_plat/resource/attribute_interface.rb
|
200
233
|
- lib/e_plat/resource/base.rb
|
234
|
+
- lib/e_plat/resource/collection.rb
|
201
235
|
- lib/e_plat/resource/concerns/aliases.rb
|
236
|
+
- lib/e_plat/resource/concerns/dirty.rb
|
237
|
+
- lib/e_plat/resource/concerns/metafieldable.rb
|
202
238
|
- lib/e_plat/resource/concerns/overwrite_instance_methods.rb
|
203
239
|
- lib/e_plat/resource/concerns/overwrite_request_methods.rb
|
240
|
+
- lib/e_plat/resource/countable.rb
|
241
|
+
- lib/e_plat/resource/metafield.rb
|
204
242
|
- lib/e_plat/resource/order.rb
|
205
|
-
- lib/e_plat/resource/order/
|
243
|
+
- lib/e_plat/resource/order/Consignment.rb
|
244
|
+
- lib/e_plat/resource/order/billing_address.rb
|
206
245
|
- lib/e_plat/resource/order/fulfillment.rb
|
207
246
|
- lib/e_plat/resource/order/line_item.rb
|
247
|
+
- lib/e_plat/resource/order/shipping_address.rb
|
208
248
|
- lib/e_plat/resource/order/shipping_line.rb
|
249
|
+
- lib/e_plat/resource/paginated/link_headers.rb
|
250
|
+
- lib/e_plat/resource/paginated/link_params.rb
|
209
251
|
- lib/e_plat/resource/product.rb
|
210
252
|
- lib/e_plat/resource/product/image.rb
|
211
253
|
- lib/e_plat/resource/product/option.rb
|
212
254
|
- lib/e_plat/resource/product/variant.rb
|
255
|
+
- lib/e_plat/resource/script_tag.rb
|
213
256
|
- lib/e_plat/resource/shop.rb
|
257
|
+
- lib/e_plat/resource/shopify_only/recurring_application_charge.rb
|
258
|
+
- lib/e_plat/resource/shopify_only/recurring_application_charge/usage_charge.rb
|
259
|
+
- lib/e_plat/resource/webhook.rb
|
214
260
|
- lib/e_plat/session.rb
|
215
261
|
- lib/e_plat/type_coercer.rb
|
216
262
|
- lib/e_plat/types.rb
|
@@ -1,37 +0,0 @@
|
|
1
|
-
|
2
|
-
module EPlat
|
3
|
-
class Order::Customer < Base
|
4
|
-
|
5
|
-
schema do
|
6
|
-
array :addresses, item_type: :hash
|
7
|
-
string :currency
|
8
|
-
datetime :created_at
|
9
|
-
hash :default_address
|
10
|
-
string :email
|
11
|
-
hash :email_marketing_consent
|
12
|
-
string :first_name
|
13
|
-
integer :id
|
14
|
-
string :last_name
|
15
|
-
integer :last_order_id
|
16
|
-
string :last_order_name
|
17
|
-
hash :metafield
|
18
|
-
string :marketing_opt_in_level
|
19
|
-
string :multipass_identifier
|
20
|
-
string :note
|
21
|
-
integer :orders_count
|
22
|
-
string :password
|
23
|
-
string :password_confirmation
|
24
|
-
string :phone
|
25
|
-
hash :sms_marketing_consent
|
26
|
-
string :state
|
27
|
-
string :tags
|
28
|
-
boolean :tax_exempt
|
29
|
-
array :tax_exemptions
|
30
|
-
decimal :total_spent
|
31
|
-
datetime :updated_at
|
32
|
-
boolean :verified_email
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|