e_plat 0.5.5 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +25 -6
- data/lib/e_plat/client.rb +21 -1
- data/lib/e_plat/initializer.rb +26 -0
- data/lib/e_plat/mapping.rb +39 -15
- data/lib/e_plat/resource/base.rb +15 -3
- data/lib/e_plat/resource/concerns/overwrite_request_methods.rb +64 -21
- data/lib/e_plat/resource/metafield.rb +2 -2
- data/lib/e_plat/resource/platform_specific/bigcommerce/metafield.rb +4 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/order/Consignment.rb +2 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/order/billing_address.rb +2 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/order/fulfillment.rb +2 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/order/line_item.rb +2 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/order/shipping_address.rb +2 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/order/shipping_line.rb +2 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/order.rb +4 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/product/image.rb +2 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/product/option.rb +2 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/product/variant.rb +2 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/product.rb +4 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/script_tag.rb +4 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/shop.rb +4 -0
- data/lib/e_plat/resource/platform_specific/bigcommerce/webhook.rb +4 -0
- data/lib/e_plat/resource/platform_specific/shopify/metafield.rb +4 -0
- data/lib/e_plat/resource/platform_specific/shopify/order/Consignment.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/order/billing_address.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/order/fulfillment.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/order/line_item.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/order/shipping_address.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/order/shipping_line.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/order.rb +4 -0
- data/lib/e_plat/resource/platform_specific/shopify/product/image.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/product/option.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/product/variant.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/product.rb +4 -0
- data/lib/e_plat/resource/platform_specific/shopify/recurring_application_charge/usage_charge.rb +2 -0
- data/lib/e_plat/resource/platform_specific/shopify/recurring_application_charge.rb +4 -0
- data/lib/e_plat/resource/platform_specific/shopify/script_tag.rb +4 -0
- data/lib/e_plat/resource/platform_specific/shopify/shop.rb +4 -0
- data/lib/e_plat/resource/platform_specific/shopify/webhook.rb +4 -0
- data/lib/e_plat/resource/product/variant.rb +2 -4
- data/lib/e_plat/type_coercer.rb +1 -1
- data/lib/e_plat/version.rb +1 -1
- data/lib/e_plat.rb +21 -1
- metadata +35 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9dbde4e59673eba0dc91580fd4f4f50bc138c380cfa00a78a2be1de12f1706c
|
4
|
+
data.tar.gz: 9998fa572e61d5e043fdbe2ec804c18cde16c65f2bb64534003a5f00e0034d38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d855f8148b8df76db6202da298128a8e3c9f8ba1b1adebd7824182e80676ff6f242c59f3aa54cc791b6567f04e1741fefe7a643fe2c7e8523c93d0fb7cbc0236
|
7
|
+
data.tar.gz: 8c478644bf379156b98e80992edbec4a24baa95e854a8d9864abc92c0e8c73ea4e4d4d9980c3957926eb70164e3f547fbfaffd88373fbc3bc1859dd7e8c80101
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
<strong>EPlat <small>(E-commerce Platform)</small> </br></strong>
|
4
4
|
A single interface for interacting with E-commerce platform APIs.
|
5
5
|
|
6
|
-
Goals
|
6
|
+
Goals:
|
7
7
|
<ul>
|
8
8
|
<li>
|
9
9
|
Make it easy to use and request API resources from different platforms.
|
@@ -12,7 +12,7 @@ Goals are:
|
|
12
12
|
Offer a universal alias interface for interacting with common natured attributes. e.g. Shopify's product.body_html and BigCommerce's product.description.
|
13
13
|
</li>
|
14
14
|
<li>
|
15
|
-
Have a simple, easy-to-understand
|
15
|
+
Have a simple, easy-to-understand project structure.
|
16
16
|
</li>
|
17
17
|
<li>
|
18
18
|
The e_plat alias interface mimics Shopify's API schema names and types.
|
@@ -43,7 +43,6 @@ You can configure which platform APIs are used by updating the EPlat config: <br
|
|
43
43
|
#initializers/e_plat.rb
|
44
44
|
EPlat.config.shopify_api_version = "2024-01"
|
45
45
|
EPlat.config.bigcommerce_api_version = "v3"
|
46
|
-
EPlat.config.woocommerce_api_version = "v3"
|
47
46
|
|
48
47
|
# EPlat.api_display_name.shopify #=> "2024-01" # presents as the platform would display in URL paths
|
49
48
|
# EPlat.config.shopify_api_version #=> "2024_01" # coerced interally for creating constants
|
@@ -62,7 +61,7 @@ EPlat::Session.new(
|
|
62
61
|
platform: :shopify,
|
63
62
|
store_url: "test-store.myshopify.com",
|
64
63
|
api_token: "123",
|
65
|
-
# store_hash: optional BigCommerce store hash
|
64
|
+
# store_hash: "optional BigCommerce store hash"
|
66
65
|
)
|
67
66
|
```
|
68
67
|
|
@@ -71,7 +70,7 @@ EPlat::Session.new(
|
|
71
70
|
EPlat::Product.find(id: 123)
|
72
71
|
```
|
73
72
|
|
74
|
-
3. Which will return
|
73
|
+
3. Which will return a platform resource instance that inherits from:
|
75
74
|
```ruby
|
76
75
|
EPlat::Product
|
77
76
|
```
|
@@ -412,6 +411,26 @@ EPlat is designed to let you mostly use it's universal interface, but then easil
|
|
412
411
|
| longitude | float | * | nil | nil |
|
413
412
|
|
414
413
|
|
414
|
+
### EPlat::Order::BillingAddress
|
415
|
+
|
416
|
+
| Alias | Type | Shopify | BigCommerce | Etc |
|
417
|
+
|---------------|---------|---------|-------------|-------------|
|
418
|
+
| address1 | string | * | street_1 | nil |
|
419
|
+
| address2 | string | * | street_2 | nil |
|
420
|
+
| city | string | * | city | nil |
|
421
|
+
| company | string | * | company | nil |
|
422
|
+
| country | string | * | country | nil |
|
423
|
+
| first_name | string | * | first_name | nil |
|
424
|
+
| last_name | string | * | last_name | nil |
|
425
|
+
| phone | string | * | phone | nil |
|
426
|
+
| province | string | * | state | nil |
|
427
|
+
| zip | string | * | zip | nil |
|
428
|
+
| country_code | string | * | country_iso2| nil |
|
429
|
+
| province_code | string | * | nil | nil |
|
430
|
+
| latitude | float | * | nil | nil |
|
431
|
+
| longitude | float | * | nil | nil |
|
432
|
+
|
433
|
+
|
415
434
|
### EPlat::Order::LineItem
|
416
435
|
|
417
436
|
| Attribute | Type | Shopify | BigCommerce | Etc |
|
@@ -749,7 +768,7 @@ Unfortunately it's in a Time Integer format. Haven't yet got dynamic conversion
|
|
749
768
|
(although should be kept track of locally)
|
750
769
|
</li>
|
751
770
|
<li>
|
752
|
-
<strong>GraphQL</strong>. EPlat just handles REST
|
771
|
+
<strong>GraphQL</strong>. EPlat just handles REST (for now, although we plan to change the internals for Shopify product to use Graphql under the hood)
|
753
772
|
<ul>
|
754
773
|
</details>
|
755
774
|
|
data/lib/e_plat/client.rb
CHANGED
@@ -16,6 +16,20 @@ module EPlat
|
|
16
16
|
def headers
|
17
17
|
platform_headers
|
18
18
|
end
|
19
|
+
|
20
|
+
# Dynamically determines the class based on the platform
|
21
|
+
# needs to return nil if there isn't a more specific class than the klass passed in
|
22
|
+
def platform_klass(klass)
|
23
|
+
return if klass.to_s.include? "EPlat::#{platform.capitalize}"
|
24
|
+
platform_specific_class_name = klass.to_s.gsub("EPlat::", "EPlat::#{platform.capitalize}::")
|
25
|
+
|
26
|
+
platform_specific_class = platform_specific_class_name.safe_constantize
|
27
|
+
if platform_specific_class_name != klass.to_s && platform_specific_class
|
28
|
+
platform_specific_class
|
29
|
+
else
|
30
|
+
nil
|
31
|
+
end
|
32
|
+
end
|
19
33
|
|
20
34
|
def inspect
|
21
35
|
"#<#{self.class} platform=#{platform.inspect} store_url=#{store_url.inspect} api_version=#{api_version.inspect}>"
|
@@ -42,8 +56,14 @@ module EPlat
|
|
42
56
|
|
43
57
|
def url_prefix(klass: nil)
|
44
58
|
# for nested resources like "/products/:product/variants/:id"
|
59
|
+
klass_without_platform_scoping = nil
|
60
|
+
EPlat::SUPPORTED_PLATFORMS.each do |platform|
|
61
|
+
klass_without_platform_scoping = klass.to_s.gsub!("#{ platform.capitalize }::", "") if klass.to_s.include?("#{ platform.capitalize }::")
|
62
|
+
end
|
63
|
+
klass = klass_without_platform_scoping&.safe_constantize || klass
|
64
|
+
|
45
65
|
collection_path =
|
46
|
-
if klass.to_s.scan("::").length
|
66
|
+
if klass.to_s.scan("::").length > 1
|
47
67
|
parent_klass = klass.to_s.split("::")[1].underscore
|
48
68
|
"#{ parent_klass.pluralize }/:#{ parent_klass }/"
|
49
69
|
else
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module EPlat
|
2
|
+
class Initializer
|
3
|
+
class << self
|
4
|
+
|
5
|
+
REQUIRED_CLASSES = EPlat::SUPPORTED_RESOURCES.map do |resource|
|
6
|
+
[
|
7
|
+
"EPlat::#{ resource.classify }",
|
8
|
+
EPlat::SUPPORTED_PLATFORMS.map do |platform|
|
9
|
+
"EPlat::#{ platform.classify }::#{ resource.classify }"
|
10
|
+
end
|
11
|
+
]
|
12
|
+
end.flatten.freeze
|
13
|
+
|
14
|
+
def check_required_classes!
|
15
|
+
REQUIRED_CLASSES.each do |klass|
|
16
|
+
unless Object.const_defined?(klass)
|
17
|
+
raise EPlat::Error, "Required class #{klass} not defined"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
data/lib/e_plat/mapping.rb
CHANGED
@@ -1,19 +1,43 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module EPlat
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
4
|
+
class Mapping
|
5
|
+
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def new_instance(specifc_mapping:, resource: nil)
|
9
|
+
platform = EPlat::Current.e_plat_session.platform.to_s
|
10
|
+
sanitized_mapping = sanitize_mapping(specifc_mapping, platform)
|
11
|
+
|
12
|
+
if Object.const_defined?(sanitized_mapping)
|
13
|
+
sanitized_mapping.constantize.new(resource)
|
14
|
+
elsif Object.const_defined?(specifc_mapping)
|
15
|
+
specifc_mapping.constantize.new(resource)
|
16
|
+
else
|
17
|
+
EPlat::Mapping::Base.new(resource)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def sanitize_mapping(specifc_mapping, platform)
|
24
|
+
# Stripe out all instanced of the platform scope in the mapping
|
25
|
+
# then put platform back in as third scope, as mapping is always platform scoped.
|
26
|
+
# i.e. EPlat::Mapping::Bigcommerce::V3::Product::Variant
|
27
|
+
parts = specifc_mapping.split("::")
|
28
|
+
|
29
|
+
parts.reject! do |part|
|
30
|
+
platform.downcase == part.downcase
|
31
|
+
end
|
32
|
+
|
33
|
+
parts.insert(2, platform.capitalize)
|
34
|
+
|
35
|
+
parts.join("::")
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
19
42
|
end
|
43
|
+
|
data/lib/e_plat/resource/base.rb
CHANGED
@@ -8,7 +8,7 @@ module EPlat
|
|
8
8
|
self.connection_class = EPlat::Connection
|
9
9
|
self.collection_parser = EPlat::Collection
|
10
10
|
self.site = "/" # this is overwritten below in initialize_singleton! when EPlat::Session is initialized
|
11
|
-
add_response_method :full_response
|
11
|
+
add_response_method :full_response #full response of the request
|
12
12
|
|
13
13
|
class << self
|
14
14
|
include Countable
|
@@ -18,6 +18,12 @@ module EPlat
|
|
18
18
|
threadsafe_attribute :_headers, :_connection, :_user, :_password, :_bearer_token, :_site, :_proxy, # active resource
|
19
19
|
:mapping, :include_root_in_json, :include_format_in_path # e_plat specific
|
20
20
|
|
21
|
+
def inherited(subclass)
|
22
|
+
super
|
23
|
+
subclass.exclude_from_json(read_only) if read_only
|
24
|
+
subclass.schema ||= schema.dup
|
25
|
+
end
|
26
|
+
|
21
27
|
def initialize_singleton!
|
22
28
|
self.site = client.base_url # .site is an ActiveResource method that uses the threadsafe _site attribute underneath
|
23
29
|
self.prefix = client.url_prefix(klass: self) # this is overwritten below in prefix= for threadsafety
|
@@ -60,6 +66,9 @@ module EPlat
|
|
60
66
|
self.read_only = read_only
|
61
67
|
end
|
62
68
|
|
69
|
+
def platform_specific_class?
|
70
|
+
self.class.to_s.include? client.platform.to_s.capitalize
|
71
|
+
end
|
63
72
|
|
64
73
|
private
|
65
74
|
|
@@ -118,7 +127,6 @@ module EPlat
|
|
118
127
|
top_level_resource?
|
119
128
|
end
|
120
129
|
|
121
|
-
|
122
130
|
private
|
123
131
|
|
124
132
|
def ensure_e_plat_attributes!
|
@@ -170,7 +178,11 @@ module EPlat
|
|
170
178
|
end
|
171
179
|
|
172
180
|
def top_level_resource?
|
173
|
-
self.class.name.split("::")
|
181
|
+
parts = self.class.name.split("::")
|
182
|
+
# platform scope not included, as top level resources can optionally be platform specific
|
183
|
+
parts.reject!{|part| EPlat::SUPPORTED_PLATFORMS.include? part.downcase }
|
184
|
+
|
185
|
+
parts.count <= 2
|
174
186
|
end
|
175
187
|
|
176
188
|
def element_name
|
@@ -8,16 +8,22 @@ module EPlat
|
|
8
8
|
|
9
9
|
module ClassMethods
|
10
10
|
def find(*arguments)
|
11
|
-
|
11
|
+
client = EPlat::Current.e_plat_session
|
12
12
|
|
13
|
-
if
|
14
|
-
|
15
|
-
arguments.second[:params] = mapping.via_native_attributes_where_possible(arguments.second[:params])
|
13
|
+
if client.platform_klass(self) and not platform_specific_class?
|
14
|
+
client.platform_klass(self).find(*arguments)
|
16
15
|
else
|
17
|
-
|
18
|
-
end
|
16
|
+
initialize_singleton!
|
19
17
|
|
20
|
-
|
18
|
+
if arguments.second && arguments.second[:params]
|
19
|
+
arguments.second[:params].merge!(client.try("#{element_name}_default_request_args") || {})
|
20
|
+
arguments.second[:params] = mapping.via_native_attributes_where_possible(arguments.second[:params])
|
21
|
+
else
|
22
|
+
arguments << {params: (client.try("#{element_name}_default_request_args") || {}) }
|
23
|
+
end
|
24
|
+
|
25
|
+
super
|
26
|
+
end
|
21
27
|
end
|
22
28
|
|
23
29
|
def find_by(params)
|
@@ -30,30 +36,67 @@ module EPlat
|
|
30
36
|
end
|
31
37
|
|
32
38
|
def new(attributes={}, persisted = false)
|
33
|
-
|
39
|
+
if client.platform_klass(self) and not platform_specific_class?
|
40
|
+
client.platform_klass(self).new(attributes, persisted)
|
41
|
+
else
|
42
|
+
initialize_singleton!
|
34
43
|
|
35
|
-
|
44
|
+
self.mapping = EPlat::Mapping.new_instance(specifc_mapping: specifc_mapping_name, resource: nil)
|
36
45
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
46
|
+
if attributes[mapping.native_top_key]
|
47
|
+
attributes = attributes.send(*top_key_method(mapping.native_top_key))
|
48
|
+
end
|
49
|
+
attributes = attributes.with_defaults(mapping.class::DEFAULT_VALUES)
|
41
50
|
|
42
|
-
|
51
|
+
super
|
52
|
+
end
|
43
53
|
end
|
44
54
|
|
45
55
|
def create(attributes = {})
|
46
|
-
|
47
|
-
attributes = mapping.via_native_attributes_where_possible(attributes)
|
56
|
+
client = EPlat::Current.e_plat_session
|
48
57
|
|
49
|
-
|
58
|
+
if client.platform_klass(self)
|
59
|
+
client.platform_klass(self).create(attributes)
|
60
|
+
else
|
61
|
+
initialize_singleton!
|
62
|
+
attributes = mapping.via_native_attributes_where_possible(attributes)
|
63
|
+
super
|
64
|
+
end
|
50
65
|
end
|
51
66
|
|
52
67
|
def update(attributes = {})
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
68
|
+
client = EPlat::Current.e_plat_session
|
69
|
+
|
70
|
+
if client.platform_klass(self)
|
71
|
+
client.platform_klass(self).update(attributes)
|
72
|
+
else
|
73
|
+
initialize_singleton!
|
74
|
+
attributes = mapping.via_native_attributes_where_possible(attributes)
|
75
|
+
|
76
|
+
super
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def delete(id, options = {})
|
81
|
+
client = EPlat::Current.e_plat_session
|
82
|
+
|
83
|
+
if client.platform_klass(self)
|
84
|
+
client.platform_klass(self).delete(id, options)
|
85
|
+
else
|
86
|
+
initialize_singleton!
|
87
|
+
super
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def exists?(id, options = {})
|
92
|
+
client = EPlat::Current.e_plat_session
|
93
|
+
|
94
|
+
if client.platform_klass(self)
|
95
|
+
client.platform_klass(self).exists?(id, options)
|
96
|
+
else
|
97
|
+
initialize_singleton!
|
98
|
+
super
|
99
|
+
end
|
57
100
|
end
|
58
101
|
|
59
102
|
private
|
@@ -48,8 +48,8 @@ module EPlat
|
|
48
48
|
|
49
49
|
def parent_class
|
50
50
|
raise "owner_resource is not defined" unless owner_resource.present?
|
51
|
-
|
52
|
-
"EPlat::#{ owner_resource.classify }".constantize # e.g EPlat::Product
|
51
|
+
|
52
|
+
client.platform_klass("EPlat::#{ owner_resource.classify }") || "EPlat::#{ owner_resource.classify }".constantize # e.g EPlat::Product
|
53
53
|
end
|
54
54
|
|
55
55
|
|
@@ -3,8 +3,7 @@ module EPlat
|
|
3
3
|
class Variant < Base
|
4
4
|
belongs_to :product, class_name: "EPlat::Product"
|
5
5
|
|
6
|
-
class << self
|
7
|
-
end
|
6
|
+
class << self; end
|
8
7
|
|
9
8
|
schema do
|
10
9
|
integer :id
|
@@ -41,7 +40,6 @@ module EPlat
|
|
41
40
|
prefix_options[:product] ||= product.id
|
42
41
|
super
|
43
42
|
end
|
44
|
-
|
45
43
|
end
|
46
44
|
end
|
47
|
-
end
|
45
|
+
end
|
data/lib/e_plat/type_coercer.rb
CHANGED
data/lib/e_plat/version.rb
CHANGED
data/lib/e_plat.rb
CHANGED
@@ -13,8 +13,9 @@ Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
|
|
13
13
|
loader = Zeitwerk::Loader.for_gem
|
14
14
|
loader.collapse("#{__dir__}/e_plat/resource") # So can call EPlat::Product
|
15
15
|
loader.collapse("#{__dir__}/e_plat/resource/shopify_only")
|
16
|
+
loader.collapse("#{__dir__}/e_plat/resource/platform_specific")
|
16
17
|
loader.collapse("#{__dir__}/e_plat/errors")
|
17
|
-
loader.setup
|
18
|
+
loader.setup
|
18
19
|
|
19
20
|
|
20
21
|
|
@@ -22,6 +23,23 @@ module EPlat
|
|
22
23
|
extend Dry::Configurable
|
23
24
|
SUPPORTED_SHOPIFY_API_VERSIONS = ['2024_01']
|
24
25
|
SUPPORTED_BIGCOMMERCE_API_VERSIONS = ['3']
|
26
|
+
|
27
|
+
SUPPORTED_PLATFORMS = ["shopify", "bigcommerce"]
|
28
|
+
SUPPORTED_RESOURCES = [
|
29
|
+
"shop",
|
30
|
+
"product",
|
31
|
+
"product/variant",
|
32
|
+
"product/image",
|
33
|
+
"product/option",
|
34
|
+
"product/image",
|
35
|
+
"order",
|
36
|
+
"order/line_item",
|
37
|
+
"order/shipping_address",
|
38
|
+
"order/billing_address",
|
39
|
+
"script_tag",
|
40
|
+
"webhook",
|
41
|
+
"metafield"
|
42
|
+
]
|
25
43
|
|
26
44
|
setting(:shopify_api_version, default: "2024_01", constructor: ->(value) do
|
27
45
|
SUPPORTED_SHOPIFY_API_VERSIONS.include?(value.underscore) ? value.underscore : raise(ArgumentError, "Shopify API version #{value} is not supported")
|
@@ -45,3 +63,5 @@ module EPlat
|
|
45
63
|
|
46
64
|
class Error < StandardError; end
|
47
65
|
end
|
66
|
+
|
67
|
+
EPlat::Initializer.check_required_classes!
|
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.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- oliwoodsuk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-04-
|
11
|
+
date: 2024-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -203,6 +203,7 @@ files:
|
|
203
203
|
- lib/e_plat/errors/incorrect_type_error.rb
|
204
204
|
- lib/e_plat/errors/missing_migration_key_error.rb
|
205
205
|
- lib/e_plat/errors/missing_session_error.rb
|
206
|
+
- lib/e_plat/initializer.rb
|
206
207
|
- lib/e_plat/mapping.rb
|
207
208
|
- lib/e_plat/mapping/base.rb
|
208
209
|
- lib/e_plat/mapping/bigcommerce/v_3/metafield.rb
|
@@ -249,6 +250,38 @@ files:
|
|
249
250
|
- lib/e_plat/resource/order/shipping_line.rb
|
250
251
|
- lib/e_plat/resource/paginated/link_headers.rb
|
251
252
|
- lib/e_plat/resource/paginated/link_params.rb
|
253
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/metafield.rb
|
254
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/order.rb
|
255
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/order/Consignment.rb
|
256
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/order/billing_address.rb
|
257
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/order/fulfillment.rb
|
258
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/order/line_item.rb
|
259
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/order/shipping_address.rb
|
260
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/order/shipping_line.rb
|
261
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/product.rb
|
262
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/product/image.rb
|
263
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/product/option.rb
|
264
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/product/variant.rb
|
265
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/script_tag.rb
|
266
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/shop.rb
|
267
|
+
- lib/e_plat/resource/platform_specific/bigcommerce/webhook.rb
|
268
|
+
- lib/e_plat/resource/platform_specific/shopify/metafield.rb
|
269
|
+
- lib/e_plat/resource/platform_specific/shopify/order.rb
|
270
|
+
- lib/e_plat/resource/platform_specific/shopify/order/Consignment.rb
|
271
|
+
- lib/e_plat/resource/platform_specific/shopify/order/billing_address.rb
|
272
|
+
- lib/e_plat/resource/platform_specific/shopify/order/fulfillment.rb
|
273
|
+
- lib/e_plat/resource/platform_specific/shopify/order/line_item.rb
|
274
|
+
- lib/e_plat/resource/platform_specific/shopify/order/shipping_address.rb
|
275
|
+
- lib/e_plat/resource/platform_specific/shopify/order/shipping_line.rb
|
276
|
+
- lib/e_plat/resource/platform_specific/shopify/product.rb
|
277
|
+
- lib/e_plat/resource/platform_specific/shopify/product/image.rb
|
278
|
+
- lib/e_plat/resource/platform_specific/shopify/product/option.rb
|
279
|
+
- lib/e_plat/resource/platform_specific/shopify/product/variant.rb
|
280
|
+
- lib/e_plat/resource/platform_specific/shopify/recurring_application_charge.rb
|
281
|
+
- lib/e_plat/resource/platform_specific/shopify/recurring_application_charge/usage_charge.rb
|
282
|
+
- lib/e_plat/resource/platform_specific/shopify/script_tag.rb
|
283
|
+
- lib/e_plat/resource/platform_specific/shopify/shop.rb
|
284
|
+
- lib/e_plat/resource/platform_specific/shopify/webhook.rb
|
252
285
|
- lib/e_plat/resource/product.rb
|
253
286
|
- lib/e_plat/resource/product/image.rb
|
254
287
|
- lib/e_plat/resource/product/option.rb
|