lucid_shopify 0.8.1 → 0.9.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 +2 -2
- data/lib/lucid_shopify/charge.rb +13 -1
- data/lib/lucid_shopify/client.rb +52 -6
- data/lib/lucid_shopify/container.rb +2 -2
- data/lib/lucid_shopify/{assert_callback.rb → verify_callback.rb} +2 -2
- data/lib/lucid_shopify/{assert_webhook.rb → verify_webhook.rb} +2 -2
- data/lib/lucid_shopify/version.rb +1 -1
- data/lib/lucid_shopify.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '06921ad4b8c0a2b5d8fd6a6e2d58001fde145d1f0c8dae16c1727cfba09f41b5'
|
4
|
+
data.tar.gz: bc83dad007907aa4f368903d4c9679dda345983c6b4269ceb513ba5982665a06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9659399ab10805210c7c97fbdd43d8e712881a1f3b9e172d1d1432ac72b56f22f00df51073df1b594b934515d3e1c2ba12d9ba68e83605d435b4639bced3442
|
7
|
+
data.tar.gz: 914b1beba17b2d7d98b6c90b7fea4e94947585ef213ff84fe6e41566fdb826b09765da39b270f09baa2b262aee9b7d3cdee47696504cd899374f7a2a9f3eac0e
|
data/README.md
CHANGED
@@ -79,7 +79,7 @@ Create/delete webhooks manually:
|
|
79
79
|
Verify callback requests with the request params:
|
80
80
|
|
81
81
|
begin
|
82
|
-
LucidShopify::
|
82
|
+
LucidShopify::VerifyCallback.new.(params)
|
83
83
|
rescue LucidShopify::Error => e
|
84
84
|
# ...
|
85
85
|
end
|
@@ -87,7 +87,7 @@ Verify callback requests with the request params:
|
|
87
87
|
Verify webhook requests with the request data and the HMAC header:
|
88
88
|
|
89
89
|
begin
|
90
|
-
LucidShopify::
|
90
|
+
LucidShopify::VerifyWebhook.new.(data, hmac)
|
91
91
|
rescue LucidShopify::Error => e
|
92
92
|
# ...
|
93
93
|
end
|
data/lib/lucid_shopify/charge.rb
CHANGED
@@ -4,7 +4,19 @@ require 'lucid_shopify'
|
|
4
4
|
|
5
5
|
module LucidShopify
|
6
6
|
#
|
7
|
-
#
|
7
|
+
# @example Subclass to provide application defaults
|
8
|
+
# class Charge < LucidShopify::Charge
|
9
|
+
# def initialize(shop)
|
10
|
+
# super('Application name',
|
11
|
+
# 9,
|
12
|
+
# test: test?,
|
13
|
+
# trial_days: shop.trial_started_at?.nil? ? 30 : nil)
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# def test?
|
17
|
+
# # ...
|
18
|
+
# end
|
19
|
+
# end
|
8
20
|
#
|
9
21
|
class Charge
|
10
22
|
#
|
data/lib/lucid_shopify/client.rb
CHANGED
@@ -2,43 +2,89 @@
|
|
2
2
|
|
3
3
|
require 'lucid_shopify/container'
|
4
4
|
|
5
|
-
%w
|
5
|
+
%w[delete get post put].each { |m| require "lucid_shopify/#{m}_request" }
|
6
6
|
|
7
7
|
module LucidShopify
|
8
8
|
class Client
|
9
9
|
#
|
10
10
|
# @param send_request [#call]
|
11
|
+
# @param send_throttled_request [#call]
|
11
12
|
#
|
12
|
-
def initialize(send_request: Container[:send_request]
|
13
|
+
def initialize(send_request: Container[:send_request],
|
14
|
+
send_throttled_request: Container[:send_throttled_request],
|
15
|
+
throttling: false)
|
13
16
|
@send_request = send_request
|
17
|
+
@send_throttled_request = send_throttled_request
|
18
|
+
@throttling = throttling
|
19
|
+
|
20
|
+
@params = {
|
21
|
+
send_request: @send_request,
|
22
|
+
send_throttled_request: @send_throttled_request
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
#
|
27
|
+
# @return [#call]
|
28
|
+
#
|
29
|
+
private def send_request
|
30
|
+
throttled? ? @send_throttled_request : @send_request
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# @return [Boolean]
|
35
|
+
#
|
36
|
+
def throttled?
|
37
|
+
@throttling
|
38
|
+
end
|
39
|
+
|
40
|
+
#
|
41
|
+
# Returns a new instance with throttling enabled, or self.
|
42
|
+
#
|
43
|
+
# @return [Client, self]
|
44
|
+
#
|
45
|
+
def throttled
|
46
|
+
return self if throttled?
|
47
|
+
|
48
|
+
self.class.new(**@params, throttling: true)
|
49
|
+
end
|
50
|
+
|
51
|
+
#
|
52
|
+
# Returns a new instance with throttling disabled, or self.
|
53
|
+
#
|
54
|
+
# @return [Client, self]
|
55
|
+
#
|
56
|
+
def unthrottled
|
57
|
+
return self unless throttled?
|
58
|
+
|
59
|
+
self.class.new(**@params, throttling: false)
|
14
60
|
end
|
15
61
|
|
16
62
|
#
|
17
63
|
# @see DeleteRequest#initialize
|
18
64
|
#
|
19
65
|
def delete(*args)
|
20
|
-
|
66
|
+
send_request.(DeleteRequest.new(*args))
|
21
67
|
end
|
22
68
|
|
23
69
|
#
|
24
70
|
# @see GetRequest#initialize
|
25
71
|
#
|
26
72
|
def get(*args)
|
27
|
-
|
73
|
+
send_request.(GetRequest.new(*args))
|
28
74
|
end
|
29
75
|
|
30
76
|
#
|
31
77
|
# @see PostRequest#initialize
|
32
78
|
#
|
33
79
|
def post_json(*args)
|
34
|
-
|
80
|
+
send_request.(PostRequest.new(*args))
|
35
81
|
end
|
36
82
|
|
37
83
|
#
|
38
84
|
# @see PutRequest#initialize
|
39
85
|
#
|
40
86
|
def put_json(*args)
|
41
|
-
|
87
|
+
send_request.(PutRequest.new(*args))
|
42
88
|
end
|
43
89
|
end
|
44
90
|
end
|
@@ -9,8 +9,6 @@ module LucidShopify
|
|
9
9
|
|
10
10
|
# Services only (dependencies); no value objects, entities.
|
11
11
|
Container.register(:activate_charge) { ActivateCharge.new }
|
12
|
-
Container.register(:assert_callback) { AssertCallback.new }
|
13
|
-
Container.register(:assert_webhook) { AssertWebhook.new }
|
14
12
|
Container.register(:client) { Client.new }
|
15
13
|
Container.register(:create_all_webhooks) { CreateAllWebhooks.new }
|
16
14
|
Container.register(:create_charge) { CreateCharge.new }
|
@@ -20,4 +18,6 @@ module LucidShopify
|
|
20
18
|
Container.register(:fetch_access_token) { FetchAccessToken.new }
|
21
19
|
Container.register(:send_request) { SendRequest.new }
|
22
20
|
Container.register(:send_throttled_request) { SendThrottledRequest.new }
|
21
|
+
Container.register(:verify_callback) { VerifyCallback.new }
|
22
|
+
Container.register(:verify_webhook) { VerifyWebhook.new }
|
23
23
|
end
|
@@ -5,11 +5,11 @@ require 'openssl'
|
|
5
5
|
require 'lucid_shopify'
|
6
6
|
|
7
7
|
module LucidShopify
|
8
|
-
class
|
8
|
+
class VerifyCallback
|
9
9
|
Error = Class.new(Error)
|
10
10
|
|
11
11
|
#
|
12
|
-
#
|
12
|
+
# Verify that the callback request originated from Shopify.
|
13
13
|
#
|
14
14
|
# @param params [Hash] the request params
|
15
15
|
#
|
@@ -6,11 +6,11 @@ require 'openssl'
|
|
6
6
|
require 'lucid_shopify'
|
7
7
|
|
8
8
|
module LucidShopify
|
9
|
-
class
|
9
|
+
class VerifyWebhook
|
10
10
|
Error = Class.new(Error)
|
11
11
|
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# Verify that the webhook request originated from Shopify.
|
14
14
|
#
|
15
15
|
# @param data [String] the signed request data
|
16
16
|
# @param hmac [String] the signature
|
data/lib/lucid_shopify.rb
CHANGED
@@ -4,8 +4,6 @@ require 'dry/initializer'
|
|
4
4
|
|
5
5
|
module LucidShopify
|
6
6
|
autoload :ActivateCharge, 'lucid_shopify/activate_charge'
|
7
|
-
autoload :AssertCallback, 'lucid_shopify/assert_callback'
|
8
|
-
autoload :AssertWebhook, 'lucid_shopify/assert_webhook'
|
9
7
|
autoload :Charge, 'lucid_shopify/charge'
|
10
8
|
autoload :Client, 'lucid_shopify/client'
|
11
9
|
autoload :Config, 'lucid_shopify/config'
|
@@ -27,6 +25,8 @@ module LucidShopify
|
|
27
25
|
autoload :Result, 'lucid_shopify/result'
|
28
26
|
autoload :SendRequest, 'lucid_shopify/send_request'
|
29
27
|
autoload :SendThrottledRequest, 'lucid_shopify/send_throttled_request'
|
28
|
+
autoload :VerifyCallback, 'lucid_shopify/verify_callback'
|
29
|
+
autoload :VerifyWebhook, 'lucid_shopify/verify_webhook'
|
30
30
|
autoload :VERSION, 'lucid_shopify/version'
|
31
31
|
autoload :Webhook, 'lucid_shopify/webhook'
|
32
32
|
autoload :WebhookHandlerList, 'lucid_shopify/webhook_handler_list'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lucid_shopify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kelsey Judson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -117,8 +117,6 @@ files:
|
|
117
117
|
- README.md
|
118
118
|
- lib/lucid_shopify.rb
|
119
119
|
- lib/lucid_shopify/activate_charge.rb
|
120
|
-
- lib/lucid_shopify/assert_callback.rb
|
121
|
-
- lib/lucid_shopify/assert_webhook.rb
|
122
120
|
- lib/lucid_shopify/charge.rb
|
123
121
|
- lib/lucid_shopify/client.rb
|
124
122
|
- lib/lucid_shopify/config.rb
|
@@ -139,6 +137,8 @@ files:
|
|
139
137
|
- lib/lucid_shopify/response.rb
|
140
138
|
- lib/lucid_shopify/send_request.rb
|
141
139
|
- lib/lucid_shopify/send_throttled_request.rb
|
140
|
+
- lib/lucid_shopify/verify_callback.rb
|
141
|
+
- lib/lucid_shopify/verify_webhook.rb
|
142
142
|
- lib/lucid_shopify/version.rb
|
143
143
|
- lib/lucid_shopify/webhook.rb
|
144
144
|
- lib/lucid_shopify/webhook_handler_list.rb
|