e_plat 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (25) hide show
  1. checksums.yaml +4 -4
  2. data/lib/e_plat/client.rb +1 -0
  3. data/lib/e_plat/resource/base.rb +13 -5
  4. data/lib/e_plat/resource/concerns/overwrite_request_methods.rb +10 -0
  5. data/lib/e_plat/resource/platform_specific/shopify_webhook/metafield.rb +4 -0
  6. data/lib/e_plat/resource/platform_specific/shopify_webhook/order/Consignment.rb +2 -0
  7. data/lib/e_plat/resource/platform_specific/shopify_webhook/order/billing_address.rb +2 -0
  8. data/lib/e_plat/resource/platform_specific/shopify_webhook/order/fulfillment.rb +2 -0
  9. data/lib/e_plat/resource/platform_specific/shopify_webhook/order/line_item.rb +2 -0
  10. data/lib/e_plat/resource/platform_specific/shopify_webhook/order/shipping_address.rb +2 -0
  11. data/lib/e_plat/resource/platform_specific/shopify_webhook/order/shipping_line.rb +2 -0
  12. data/lib/e_plat/resource/platform_specific/shopify_webhook/order.rb +6 -0
  13. data/lib/e_plat/resource/platform_specific/shopify_webhook/product/image.rb +7 -0
  14. data/lib/e_plat/resource/platform_specific/shopify_webhook/product/option.rb +9 -0
  15. data/lib/e_plat/resource/platform_specific/shopify_webhook/product/variant/option_value.rb +7 -0
  16. data/lib/e_plat/resource/platform_specific/shopify_webhook/product/variant.rb +9 -0
  17. data/lib/e_plat/resource/platform_specific/shopify_webhook/product.rb +14 -0
  18. data/lib/e_plat/resource/platform_specific/shopify_webhook/recurring_application_charge/usage_charge.rb +2 -0
  19. data/lib/e_plat/resource/platform_specific/shopify_webhook/recurring_application_charge.rb +6 -0
  20. data/lib/e_plat/resource/platform_specific/shopify_webhook/script_tag.rb +4 -0
  21. data/lib/e_plat/resource/platform_specific/shopify_webhook/shop.rb +4 -0
  22. data/lib/e_plat/resource/platform_specific/shopify_webhook/webhook.rb +4 -0
  23. data/lib/e_plat/resource/product/variant.rb +2 -1
  24. data/lib/e_plat/version.rb +1 -1
  25. metadata +19 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5577cb6f825d656e170ae63d33c027e9b50080040347496bdf96d3c4f09920c3
4
- data.tar.gz: 75cde1f016be6b06f07ba9201655496c7262e47d1611e320193c9d994549561a
3
+ metadata.gz: d034aa67ea9c09ef394c0f55c26bb2d41032e7a8c8e958fe4fdc0d2bd24222b5
4
+ data.tar.gz: 3ba4c808ae422b28a12470957f87f88283985dbaf193767e9a3d7ae5a1f9c58c
5
5
  SHA512:
6
- metadata.gz: 12484df951bb9fe2311ceb78e1b6ee3f990a82dcddc06702153da350b14e7b1e3c87180591536e80965eeff731c3a1d63f5012c8dceb8df7e86014c29d95479a
7
- data.tar.gz: fe491070587b5284dc61d52db7bea1c2951e38bd6e0847b06d11b19077cf0468b7c35f8a7a19993bfac37632be6c9cabf863a30b76abcfab7c6929d064da26c3
6
+ metadata.gz: 394fc11195351f359b3c001b11e0a7fcab32763e8c5fd24a2c0a1be811690a0d736f5393a09e1f9d566b8bbdb06553c9df699e75d08b6b15f4e0172af546d561
7
+ data.tar.gz: ee2c4ad95ec889f72f0653a8167787457529ef505fcfdf31c4287b9d478914659915633e50d80b979cc22e01d506e6a108e2567966db347c87646f36236e4739
data/lib/e_plat/client.rb CHANGED
@@ -23,6 +23,7 @@ module EPlat
23
23
  # needs to return nil if there isn't a more specific class than the klass passed in
24
24
  def platform_klass(klass)
25
25
  return if klass.to_s.include? "EPlat::#{platform.capitalize}"
26
+
26
27
  platform_specific_class_name = klass.to_s.gsub("EPlat::", "EPlat::#{platform.capitalize}::")
27
28
 
28
29
  platform_specific_class = platform_specific_class_name.safe_constantize
@@ -18,7 +18,7 @@ module EPlat
18
18
  attr_accessor :read_only
19
19
 
20
20
  threadsafe_attribute :_headers, :_connection, :_user, :_password, :_bearer_token, :_site, :_proxy, # active resource
21
- :mapping, :include_root_in_json, :include_format_in_path # e_plat specific
21
+ :mapping, :include_root_in_json, :include_format_in_path, :mapping_class # e_plat specific
22
22
 
23
23
  def inherited(subclass)
24
24
  super
@@ -33,7 +33,7 @@ module EPlat
33
33
  self.timeout = 5
34
34
  self.include_format_in_path = client.include_format_in_path?
35
35
  self.mapping = mapping_instance
36
-
36
+
37
37
  client.platform_headers.each {|name, value| self.headers[name] = value}
38
38
  end
39
39
 
@@ -71,12 +71,18 @@ module EPlat
71
71
  def platform_specific_class?
72
72
  self.class.to_s.include? client.platform.to_s.capitalize
73
73
  end
74
+
75
+ def cached_shopify_webhook?
76
+ self.to_s.include?("EPlat::ShopifyWebhook")
77
+ end
78
+
74
79
 
75
80
  private
76
81
 
77
82
  def mapping_instance
78
- mapping_class_name = "EPlat::Mapping::#{ client.platform.capitalize }::V#{ client.api_version.camelize }::#{ element_name.classify }"
79
-
83
+ api_version = (client.shopify? && self.to_s.include?("EPlat::ShopifyWebhook")) ? "2024_01" : client.api_version
84
+ mapping_class_name = "EPlat::Mapping::#{ client.platform.capitalize }::V#{ api_version.camelize }::#{ element_name.classify }"
85
+
80
86
  EPlat::Mapping.new_instance(specifc_mapping: mapping_class_name, resource: nil)
81
87
  end
82
88
 
@@ -164,7 +170,9 @@ module EPlat
164
170
 
165
171
  def mapping_instance
166
172
  class_constant_string = self.class.to_s.gsub("EPlat::", "")
167
- mapping_class_name = "EPlat::Mapping::#{ client.platform.capitalize }::V#{ client.api_version.camelize }::#{ class_constant_string }"
173
+ class_constant_string.gsub!("ShopifyWebhook", "Shopify")
174
+ api_version = (client.shopify? && self.class.to_s.include?("EPlat::ShopifyWebhook")) ? "2024_01" : client.api_version
175
+ mapping_class_name = "EPlat::Mapping::#{ client.platform.capitalize }::V#{ api_version.camelize }::#{ class_constant_string }"
168
176
 
169
177
  EPlat::Mapping.new_instance(specifc_mapping: mapping_class_name, resource: self)
170
178
  end
@@ -9,6 +9,7 @@ module EPlat
9
9
  module ClassMethods
10
10
  def find(*arguments)
11
11
  client = EPlat::Current.e_plat_session
12
+ cached_shopify_webhook_warning if cached_shopify_webhook?
12
13
 
13
14
  if client.platform_klass(self) and not platform_specific_class?
14
15
  client.platform_klass(self).find(*arguments)
@@ -54,6 +55,7 @@ module EPlat
54
55
 
55
56
  def create(attributes = {})
56
57
  client = EPlat::Current.e_plat_session
58
+ cached_shopify_webhook_warning if cached_shopify_webhook?
57
59
 
58
60
  if client.platform_klass(self)
59
61
  client.platform_klass(self).create(attributes)
@@ -66,6 +68,7 @@ module EPlat
66
68
 
67
69
  def update(attributes = {})
68
70
  client = EPlat::Current.e_plat_session
71
+ cached_shopify_webhook_warning if cached_shopify_webhook?
69
72
 
70
73
  if client.platform_klass(self)
71
74
  client.platform_klass(self).update(attributes)
@@ -79,6 +82,7 @@ module EPlat
79
82
 
80
83
  def delete(id, options = {})
81
84
  client = EPlat::Current.e_plat_session
85
+ cached_shopify_webhook_warning if cached_shopify_webhook?
82
86
 
83
87
  if client.platform_klass(self)
84
88
  client.platform_klass(self).delete(id, options)
@@ -90,6 +94,7 @@ module EPlat
90
94
 
91
95
  def exists?(id, options = {})
92
96
  client = EPlat::Current.e_plat_session
97
+ cached_shopify_webhook_warning if cached_shopify_webhook?
93
98
 
94
99
  if client.platform_klass(self)
95
100
  client.platform_klass(self).exists?(id, options)
@@ -109,6 +114,11 @@ module EPlat
109
114
  class_constant_string = self.name.gsub("EPlat::", "")
110
115
  "EPlat::Mapping::#{client.platform.capitalize}::V#{client.api_version.camelize}::#{class_constant_string}"
111
116
  end
117
+
118
+ def cached_shopify_webhook_warning
119
+ warn "***EPlat Warning this is a cached webhook. request a live resource instead to request with***"
120
+ end
121
+
112
122
  end
113
123
 
114
124
 
@@ -0,0 +1,4 @@
1
+
2
+ module EPlat::ShopifyWebhook
3
+ class Metafield < EPlat::Metafield; end
4
+ end
@@ -0,0 +1,2 @@
1
+
2
+ class EPlat::ShopifyWebhook::Order::Consignment < EPlat::Order::Consignment; end
@@ -0,0 +1,2 @@
1
+
2
+ class EPlat::ShopifyWebhook::Order::BillingAddress < EPlat::Order::BillingAddress; end
@@ -0,0 +1,2 @@
1
+
2
+ class EPlat::ShopifyWebhook::Order::Fulfillment < EPlat::Order::Fulfillment; end
@@ -0,0 +1,2 @@
1
+
2
+ class EPlat::ShopifyWebhook::Order::LineItem < EPlat::Order::LineItem; end
@@ -0,0 +1,2 @@
1
+
2
+ class EPlat::ShopifyWebhook::Order::ShippingAddress < EPlat::Order::ShippingAddress; end
@@ -0,0 +1,2 @@
1
+
2
+ class EPlat::ShopifyWebhook::Order::ShippingLine < EPlat::Order::ShippingLine; end
@@ -0,0 +1,6 @@
1
+
2
+ module EPlat::ShopifyWebhook
3
+ class Order < EPlat::Order
4
+ has_many :line_items, class_name: "EPlat::ShopifyWebhook::Order::LineItem"
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+
2
+ class EPlat::ShopifyWebhook::Product::Image < EPlat::Product::Image
3
+ def self.graphql_fields
4
+ warn "this is a cached webhook. request a live resource instead"
5
+ EPlat::Shopify::Product::Image.graphql_fields
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+
2
+ class EPlat::ShopifyWebhook::Product::Option < EPlat::Product::Option
3
+
4
+ def self.graphql_fields
5
+ warn "this is a cached webhook. request a live resource instead"
6
+ EPlat::Shopify::Product::Option.graphql_fields
7
+ end
8
+
9
+ end
@@ -0,0 +1,7 @@
1
+
2
+ class EPlat::ShopifyWebhook::Product::Variant::OptionValue < EPlat::Product::Variant::OptionValue
3
+ def self.graphql_fields
4
+ warn "this is a cached webhook. request a live resource instead"
5
+ EPlat::Shopify::Product::Variant::OptionValue.graphql_fields
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+
2
+ class EPlat::ShopifyWebhook::Product::Variant < EPlat::Product::Variant
3
+
4
+ def self.graphql_fields
5
+ warn "this is a cached webhook. request a live resource instead"
6
+ EPlat::Shopify::Product::Variant.graphql_fields
7
+ end
8
+
9
+ end
@@ -0,0 +1,14 @@
1
+
2
+ module EPlat::ShopifyWebhook
3
+ class Product < EPlat::Product
4
+ has_many :variants, class_name: "EPlat::ShopifyWebhook::Product::Variant"
5
+ has_many :images, class_name: "EPlat::ShopifyWebhook::Product::Image"
6
+ has_many :options, class_name: "EPlat::ShopifyWebhook::Product::Option"
7
+
8
+ def self.graphql_fields
9
+ warn "this is a cached webhook. request a live resource instead"
10
+ EPlat::Shopify::Product.graphql_fields
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,2 @@
1
+
2
+ class EPlat::ShopifyWebhook::RecurringApplicationCharge::UsageCharge < EPlat::RecurringApplicationCharge::UsageCharge; end
@@ -0,0 +1,6 @@
1
+
2
+ module EPlat::ShopifyWebhook
3
+ class RecurringApplicationCharge < EPlat::RecurringApplicationCharge
4
+ has_many :usage_charges, class_name: "EPlat::ShopifyWebhook::RecurringApplicationCharge::UsageCharge"
5
+ end
6
+ end
@@ -0,0 +1,4 @@
1
+
2
+ module EPlat::ShopifyWebhook
3
+ class ScriptTag < EPlat::ScriptTag; end
4
+ end
@@ -0,0 +1,4 @@
1
+
2
+ module EPlat::ShopifyWebhook
3
+ class Shop < EPlat::Shop; end
4
+ end
@@ -0,0 +1,4 @@
1
+
2
+ module EPlat::ShopifyWebhook
3
+ class Webhook < EPlat::Webhook; end
4
+ end
@@ -28,6 +28,7 @@ module EPlat
28
28
  string :tax_code
29
29
  boolean :requires_shipping
30
30
  string :admin_graphql_api_id
31
+ hash :image # default: {}, just for Shopify Webhooks
31
32
  end
32
33
 
33
34
  def save
@@ -39,7 +40,7 @@ module EPlat
39
40
  if client.bigcommerce?
40
41
  image_url
41
42
  elsif client.shopify? && client.uses_graphql_for_products?
42
- image&.src
43
+ image.try(:src)
43
44
  end
44
45
  end
45
46
 
@@ -1,3 +1,3 @@
1
1
  module EPlat
2
- VERSION = "0.7.3"
2
+ VERSION = "0.7.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: e_plat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - oliwoodsuk
@@ -382,6 +382,24 @@ files:
382
382
  - lib/e_plat/resource/platform_specific/shopify/script_tag.rb
383
383
  - lib/e_plat/resource/platform_specific/shopify/shop.rb
384
384
  - lib/e_plat/resource/platform_specific/shopify/webhook.rb
385
+ - lib/e_plat/resource/platform_specific/shopify_webhook/metafield.rb
386
+ - lib/e_plat/resource/platform_specific/shopify_webhook/order.rb
387
+ - lib/e_plat/resource/platform_specific/shopify_webhook/order/Consignment.rb
388
+ - lib/e_plat/resource/platform_specific/shopify_webhook/order/billing_address.rb
389
+ - lib/e_plat/resource/platform_specific/shopify_webhook/order/fulfillment.rb
390
+ - lib/e_plat/resource/platform_specific/shopify_webhook/order/line_item.rb
391
+ - lib/e_plat/resource/platform_specific/shopify_webhook/order/shipping_address.rb
392
+ - lib/e_plat/resource/platform_specific/shopify_webhook/order/shipping_line.rb
393
+ - lib/e_plat/resource/platform_specific/shopify_webhook/product.rb
394
+ - lib/e_plat/resource/platform_specific/shopify_webhook/product/image.rb
395
+ - lib/e_plat/resource/platform_specific/shopify_webhook/product/option.rb
396
+ - lib/e_plat/resource/platform_specific/shopify_webhook/product/variant.rb
397
+ - lib/e_plat/resource/platform_specific/shopify_webhook/product/variant/option_value.rb
398
+ - lib/e_plat/resource/platform_specific/shopify_webhook/recurring_application_charge.rb
399
+ - lib/e_plat/resource/platform_specific/shopify_webhook/recurring_application_charge/usage_charge.rb
400
+ - lib/e_plat/resource/platform_specific/shopify_webhook/script_tag.rb
401
+ - lib/e_plat/resource/platform_specific/shopify_webhook/shop.rb
402
+ - lib/e_plat/resource/platform_specific/shopify_webhook/webhook.rb
385
403
  - lib/e_plat/resource/product.rb
386
404
  - lib/e_plat/resource/product/image.rb
387
405
  - lib/e_plat/resource/product/option.rb