pin_up 1.4.0 → 1.4.1
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/.travis.yml +1 -0
- data/Gemfile +1 -12
- data/Gemfile.lock +23 -94
- data/README.md +33 -33
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/pin_up/balance.rb +1 -1
- data/lib/pin_up/bank_accounts.rb +1 -1
- data/lib/pin_up/base.rb +2 -2
- data/lib/pin_up/card.rb +2 -2
- data/lib/pin_up/charge.rb +5 -5
- data/lib/pin_up/customer.rb +8 -8
- data/lib/pin_up/recipient.rb +4 -4
- data/lib/pin_up/refund.rb +2 -2
- data/lib/pin_up/transfer.rb +5 -5
- data/lib/pin_up/webhook_endpoints.rb +4 -4
- data/pin_up.gemspec +8 -25
- data/spec/base_spec.rb +3 -3
- data/spec/errors_spec.rb +9 -8
- data/spec/plan_spec.rb +6 -7
- data/spec/subscription_spec.rb +2 -4
- data/spec/webhook_endpoints_spec.rb +2 -1
- metadata +15 -58
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8cd621a87b31feec9398239fb846abf0bc7117d72aac49d9c68d6d7d279fe7c4
|
|
4
|
+
data.tar.gz: 3e5a01721cb0a881664e7643f9295f2bf1a8e1ca0e5344af4cab6ac4c8e50b65
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7ea5de17437a508844cc3989a7203f33c4c29885cc9faab46627c9432e1b67927c2384334a95e9281e986746c554029868c54562e55a33340631034f3cd77a55
|
|
7
|
+
data.tar.gz: 145598a3fef5ce8f34b681443d7eb7ce20a8f9b3f9712aa4733c68473c97cd3e12ed25af85ffb56f30078319c368428194ee7ac054807a21e0d54f9a6656aa79
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -1,14 +1,3 @@
|
|
|
1
1
|
source "https://rubygems.org"
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
group :development do
|
|
6
|
-
gem "rdoc", "~> 3.12"
|
|
7
|
-
gem "rspec" #, "~> 2.13"
|
|
8
|
-
gem "jeweler", "~> 2.3.9"
|
|
9
|
-
gem "simplecov", "~> 0.7.1"
|
|
10
|
-
gem "webmock"#, "~> 1.12.3"
|
|
11
|
-
gem "vcr"#, "~> 2.5.0"
|
|
12
|
-
gem "guard-rspec" #, "~> 3.0.2"
|
|
13
|
-
gem "terminal-notifier-guard", "~> 1.5.3"
|
|
14
|
-
end
|
|
3
|
+
gemspec
|
data/Gemfile.lock
CHANGED
|
@@ -1,90 +1,28 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
pin_up (1.4.0)
|
|
5
|
+
httparty (= 0.17.0)
|
|
6
|
+
|
|
1
7
|
GEM
|
|
2
8
|
remote: https://rubygems.org/
|
|
3
9
|
specs:
|
|
4
|
-
addressable (2.
|
|
5
|
-
|
|
6
|
-
coderay (1.1.2)
|
|
10
|
+
addressable (2.6.0)
|
|
11
|
+
public_suffix (>= 2.0.2, < 4.0)
|
|
7
12
|
crack (0.4.3)
|
|
8
13
|
safe_yaml (~> 1.0.0)
|
|
9
|
-
descendants_tracker (0.0.4)
|
|
10
|
-
thread_safe (~> 0.3, >= 0.3.1)
|
|
11
14
|
diff-lcs (1.3)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
formatador (0.2.5)
|
|
16
|
-
git (1.4.0)
|
|
17
|
-
github_api (0.16.0)
|
|
18
|
-
addressable (~> 2.4.0)
|
|
19
|
-
descendants_tracker (~> 0.0.4)
|
|
20
|
-
faraday (~> 0.8, < 0.10)
|
|
21
|
-
hashie (>= 3.4)
|
|
22
|
-
mime-types (>= 1.16, < 3.0)
|
|
23
|
-
oauth2 (~> 1.0)
|
|
24
|
-
guard (2.14.2)
|
|
25
|
-
formatador (>= 0.2.4)
|
|
26
|
-
listen (>= 2.7, < 4.0)
|
|
27
|
-
lumberjack (>= 1.0.12, < 2.0)
|
|
28
|
-
nenv (~> 0.1)
|
|
29
|
-
notiffany (~> 0.0)
|
|
30
|
-
pry (>= 0.9.12)
|
|
31
|
-
shellany (~> 0.0)
|
|
32
|
-
thor (>= 0.18.1)
|
|
33
|
-
guard-compat (1.2.1)
|
|
34
|
-
guard-rspec (4.7.3)
|
|
35
|
-
guard (~> 2.1)
|
|
36
|
-
guard-compat (~> 1.1)
|
|
37
|
-
rspec (>= 2.99.0, < 4.0)
|
|
38
|
-
hashdiff (0.3.7)
|
|
39
|
-
hashie (3.5.7)
|
|
40
|
-
highline (2.0.0)
|
|
41
|
-
httparty (0.16.2)
|
|
15
|
+
hashdiff (0.4.0)
|
|
16
|
+
httparty (0.17.0)
|
|
17
|
+
mime-types (~> 3.0)
|
|
42
18
|
multi_xml (>= 0.5.2)
|
|
43
|
-
jeweler (2.3.9)
|
|
44
|
-
builder
|
|
45
|
-
bundler
|
|
46
|
-
git (>= 1.2.5)
|
|
47
|
-
github_api (~> 0.16.0)
|
|
48
|
-
highline (>= 1.6.15)
|
|
49
|
-
nokogiri (>= 1.5.10)
|
|
50
|
-
psych
|
|
51
|
-
rake
|
|
52
|
-
rdoc
|
|
53
|
-
semver2
|
|
54
19
|
json (1.8.6)
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
rb-inotify (~> 0.9, >= 0.9.7)
|
|
59
|
-
ruby_dep (~> 1.2)
|
|
60
|
-
lumberjack (1.0.13)
|
|
61
|
-
method_source (0.9.0)
|
|
62
|
-
mime-types (2.99.3)
|
|
63
|
-
mini_portile2 (2.3.0)
|
|
20
|
+
mime-types (3.2.2)
|
|
21
|
+
mime-types-data (~> 3.2015)
|
|
22
|
+
mime-types-data (3.2019.0331)
|
|
64
23
|
multi_json (1.13.1)
|
|
65
24
|
multi_xml (0.6.0)
|
|
66
|
-
|
|
67
|
-
nenv (0.3.0)
|
|
68
|
-
nokogiri (1.8.2)
|
|
69
|
-
mini_portile2 (~> 2.3.0)
|
|
70
|
-
notiffany (0.1.1)
|
|
71
|
-
nenv (~> 0.1)
|
|
72
|
-
shellany (~> 0.0)
|
|
73
|
-
oauth2 (1.4.0)
|
|
74
|
-
faraday (>= 0.8, < 0.13)
|
|
75
|
-
jwt (~> 1.0)
|
|
76
|
-
multi_json (~> 1.3)
|
|
77
|
-
multi_xml (~> 0.5)
|
|
78
|
-
rack (>= 1.2, < 3)
|
|
79
|
-
pry (0.11.3)
|
|
80
|
-
coderay (~> 1.1.0)
|
|
81
|
-
method_source (~> 0.9.0)
|
|
82
|
-
psych (3.0.2)
|
|
83
|
-
rack (2.0.5)
|
|
84
|
-
rake (12.3.1)
|
|
85
|
-
rb-fsevent (0.10.3)
|
|
86
|
-
rb-inotify (0.9.10)
|
|
87
|
-
ffi (>= 0.5.0, < 2)
|
|
25
|
+
public_suffix (3.1.1)
|
|
88
26
|
rdoc (3.12.2)
|
|
89
27
|
json (~> 1.4)
|
|
90
28
|
rspec (3.7.0)
|
|
@@ -100,36 +38,27 @@ GEM
|
|
|
100
38
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
101
39
|
rspec-support (~> 3.7.0)
|
|
102
40
|
rspec-support (3.7.1)
|
|
103
|
-
|
|
104
|
-
safe_yaml (1.0.4)
|
|
105
|
-
semver2 (3.4.2)
|
|
106
|
-
shellany (0.0.1)
|
|
41
|
+
safe_yaml (1.0.5)
|
|
107
42
|
simplecov (0.7.1)
|
|
108
43
|
multi_json (~> 1.0)
|
|
109
44
|
simplecov-html (~> 0.7.1)
|
|
110
45
|
simplecov-html (0.7.1)
|
|
111
|
-
terminal-notifier-guard (1.5.3)
|
|
112
|
-
thor (0.20.0)
|
|
113
|
-
thread_safe (0.3.6)
|
|
114
46
|
vcr (4.0.0)
|
|
115
|
-
webmock (3.
|
|
47
|
+
webmock (3.6.0)
|
|
116
48
|
addressable (>= 2.3.6)
|
|
117
49
|
crack (>= 0.3.2)
|
|
118
|
-
hashdiff
|
|
50
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
|
119
51
|
|
|
120
52
|
PLATFORMS
|
|
121
53
|
ruby
|
|
122
54
|
|
|
123
55
|
DEPENDENCIES
|
|
124
|
-
|
|
125
|
-
httparty (>= 0.11.0)
|
|
126
|
-
jeweler (~> 2.3.9)
|
|
56
|
+
pin_up!
|
|
127
57
|
rdoc (~> 3.12)
|
|
128
|
-
rspec
|
|
58
|
+
rspec (~> 3.7.0)
|
|
129
59
|
simplecov (~> 0.7.1)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
webmock
|
|
60
|
+
vcr (~> 4.0.0)
|
|
61
|
+
webmock (~> 3.6.0)
|
|
133
62
|
|
|
134
63
|
BUNDLED WITH
|
|
135
|
-
1.
|
|
64
|
+
1.17.3
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## pin_up
|
|
2
2
|
|
|
3
|
-
A Ruby gem wrapper for the pin-payments (
|
|
3
|
+
A Ruby gem wrapper for the pin-payments (pinpayments.com) API, all of it.
|
|
4
4
|
|
|
5
5
|
Support for Ruby Ruby 2.x.x
|
|
6
6
|
|
|
@@ -115,7 +115,7 @@ With Pagination:
|
|
|
115
115
|
|
|
116
116
|
Pin::Customer.update('cus_token', hash_of_details)
|
|
117
117
|
|
|
118
|
-
If passing a hash of details, it must be the full list of details of the credit card to be stored. (https://
|
|
118
|
+
If passing a hash of details, it must be the full list of details of the credit card to be stored. (https://pinpayments.com/docs/api/customers#put-customer)
|
|
119
119
|
|
|
120
120
|
###### Update only an email
|
|
121
121
|
|
|
@@ -190,20 +190,20 @@ Only use this method if you're comfortable sending card details to your server -
|
|
|
190
190
|
##### Create A Plan
|
|
191
191
|
Pin::Plan.create(plan)
|
|
192
192
|
|
|
193
|
-
plan = { name: 'Coffee Plan',
|
|
194
|
-
amount: '1000',
|
|
195
|
-
currency: 'AUD',
|
|
196
|
-
interval: 30,
|
|
197
|
-
interval_unit: 'day',
|
|
198
|
-
setup_amount: 0,
|
|
199
|
-
trial_amount: 0,
|
|
200
|
-
trial_interval: 7,
|
|
193
|
+
plan = { name: 'Coffee Plan',
|
|
194
|
+
amount: '1000',
|
|
195
|
+
currency: 'AUD',
|
|
196
|
+
interval: 30,
|
|
197
|
+
interval_unit: 'day',
|
|
198
|
+
setup_amount: 0,
|
|
199
|
+
trial_amount: 0,
|
|
200
|
+
trial_interval: 7,
|
|
201
201
|
trial_interval_unit: 'day' }
|
|
202
|
-
|
|
203
|
-
Note: setup_amount, trial_amount, trial_interval and trial_interval_unit are all optional fields.
|
|
202
|
+
|
|
203
|
+
Note: setup_amount, trial_amount, trial_interval and trial_interval_unit are all optional fields.
|
|
204
204
|
|
|
205
205
|
Pin::Plan.create(plan)
|
|
206
|
-
|
|
206
|
+
|
|
207
207
|
##### List All Plans
|
|
208
208
|
Pin::Plan.all
|
|
209
209
|
|
|
@@ -214,30 +214,30 @@ Show Plans on a particular page:
|
|
|
214
214
|
With Pagination:
|
|
215
215
|
|
|
216
216
|
Pin::Plan.all(3,true)
|
|
217
|
-
|
|
217
|
+
|
|
218
218
|
##### Find a Plan
|
|
219
219
|
|
|
220
220
|
Pin::Plan.find(plan_token)
|
|
221
221
|
|
|
222
222
|
Return the details of a specified plan
|
|
223
|
-
|
|
223
|
+
|
|
224
224
|
##### Update a Plan
|
|
225
225
|
Update the name of a specified plan. Only the plan name can be updated!
|
|
226
|
-
|
|
226
|
+
|
|
227
227
|
Pin::Plan.update(plan_token, name_hash)
|
|
228
|
-
|
|
228
|
+
|
|
229
229
|
name_hash = { name: 'new_plan_name' }
|
|
230
230
|
|
|
231
231
|
##### Delete a Plan
|
|
232
|
-
Deletes a plan and all of its subscriptions. You will not be able to recover this.
|
|
232
|
+
Deletes a plan and all of its subscriptions. You will not be able to recover this.
|
|
233
233
|
|
|
234
234
|
Note: Plans can only be deleted if they have no running subscriptions.
|
|
235
|
-
|
|
235
|
+
|
|
236
236
|
Pin::Plan.delete(plan_token)
|
|
237
237
|
|
|
238
238
|
## Subscriptions
|
|
239
239
|
##### Create A Subscription
|
|
240
|
-
Activate a new subscription and return its details. The customer's card will immeadiately be billed the initial plan amount, unless there's a trial period.
|
|
240
|
+
Activate a new subscription and return its details. The customer's card will immeadiately be billed the initial plan amount, unless there's a trial period.
|
|
241
241
|
|
|
242
242
|
|
|
243
243
|
subscription = { plan_token: plan_token,
|
|
@@ -248,7 +248,7 @@ Activate a new subscription and return its details. The customer's card will imm
|
|
|
248
248
|
Note: card_token and include_setup_fee are both optional.
|
|
249
249
|
|
|
250
250
|
Pin::Subscription.create(subscription)
|
|
251
|
-
|
|
251
|
+
|
|
252
252
|
##### List All Subscriptions
|
|
253
253
|
|
|
254
254
|
Pin::Subscription.all
|
|
@@ -260,34 +260,34 @@ Show Subscriptions on a particular page:
|
|
|
260
260
|
With Pagination:
|
|
261
261
|
|
|
262
262
|
Pin::Subscription.all(3,true)
|
|
263
|
-
|
|
263
|
+
|
|
264
264
|
##### Find a Subscription
|
|
265
265
|
Return the details of a subscription.
|
|
266
266
|
|
|
267
267
|
Pin::Subscription.find(subscription_token)
|
|
268
|
-
|
|
268
|
+
|
|
269
269
|
##### Update a Subscription
|
|
270
270
|
Updates the card associated with a subscription identified by the subscription token.
|
|
271
|
-
|
|
271
|
+
|
|
272
272
|
Note: The card token must already be associated to the customer of the subscription.
|
|
273
|
-
|
|
273
|
+
|
|
274
274
|
Pin::Subscription.update(subscription_token, card_token)
|
|
275
|
-
|
|
275
|
+
|
|
276
276
|
##### Delete a Subscription
|
|
277
|
-
Cancels the subscription identified by the subscription token. Subscriptions can only be cancelled if they are in a trial or active state.
|
|
277
|
+
Cancels the subscription identified by the subscription token. Subscriptions can only be cancelled if they are in a trial or active state.
|
|
278
278
|
|
|
279
279
|
Note: Subscriptions will only attain a cancelled state once the subscription period has elapsed. Until such time subscriptions will be in a state of 'Cancelling'.
|
|
280
|
-
|
|
280
|
+
|
|
281
281
|
Pin::Subscription.delete(plan_token)
|
|
282
|
-
|
|
282
|
+
|
|
283
283
|
##### Reactivate a Subscription
|
|
284
284
|
Reactivates the subscription identified by the subscription token returning the details of the subscription
|
|
285
|
-
|
|
285
|
+
|
|
286
286
|
Pin::Subscription.reactivate(plan_token)
|
|
287
287
|
|
|
288
288
|
##### List Subscription history
|
|
289
289
|
Fetch the ledger entries relating to a subscription identified by a subscription token
|
|
290
|
-
|
|
290
|
+
|
|
291
291
|
Pin::Subscription.history(subscription_token)
|
|
292
292
|
|
|
293
293
|
###### With pagination
|
|
@@ -422,7 +422,7 @@ run
|
|
|
422
422
|
### Record New VCR cassettes
|
|
423
423
|
After cloning the project one should create a new set of cassettes.
|
|
424
424
|
|
|
425
|
-
In spec_helper change
|
|
425
|
+
In spec_helper change
|
|
426
426
|
|
|
427
427
|
VCR.use_cassette(name, options) { example.call }
|
|
428
428
|
to
|
|
@@ -433,7 +433,7 @@ Run all tests and then change the line back (replace record: :all with options)
|
|
|
433
433
|
|
|
434
434
|
### Updating VCR test cassettes
|
|
435
435
|
A contributor can update cassettes previously recorded by adding the following syntax:
|
|
436
|
-
|
|
436
|
+
|
|
437
437
|
record: :all, :match_requests_on => [:method, :host, :path]
|
|
438
438
|
|
|
439
439
|
E.g. in a particular spec file:
|
data/Rakefile
CHANGED
|
@@ -18,7 +18,7 @@ Jeweler::Tasks.new do |gem|
|
|
|
18
18
|
gem.homepage = "http://github.com/dNitza/pin_up"
|
|
19
19
|
gem.license = "MIT"
|
|
20
20
|
gem.summary = %Q{A Ruby gem wrapper for the pin-payments API}
|
|
21
|
-
gem.description = %Q{A Ruby gem wrapper for the pin-payments (
|
|
21
|
+
gem.description = %Q{A Ruby gem wrapper for the pin-payments (pinpayments.com) API}
|
|
22
22
|
gem.email = "dnitza@gmail.com"
|
|
23
23
|
gem.authors = ["Daniel Nitsikopoulos"]
|
|
24
24
|
# dependencies defined in Gemfile
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.4.
|
|
1
|
+
1.4.1
|
data/lib/pin_up/balance.rb
CHANGED
|
@@ -7,7 +7,7 @@ module Pin
|
|
|
7
7
|
# Transfers can only be made using the funds in the available balance.
|
|
8
8
|
# The pending amount will become available after the 7 day settlement schedule on your charges.
|
|
9
9
|
#
|
|
10
|
-
# https://
|
|
10
|
+
# https://pinpayments.com/docs/api/balance
|
|
11
11
|
def self.get
|
|
12
12
|
build_response(make_request(:get, { url: 'balance' }))
|
|
13
13
|
end
|
data/lib/pin_up/bank_accounts.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Pin
|
|
|
11
11
|
# A bank account token can only be used once to create a recipient.
|
|
12
12
|
# The token automatically expires after 1 month if it hasn’t been used.
|
|
13
13
|
#
|
|
14
|
-
# https://
|
|
14
|
+
# https://pinpayments.com/docs/api/bank-accounts
|
|
15
15
|
def self.create(options)
|
|
16
16
|
build_response(make_request(:post, { url: 'bank_accounts', options: options }))
|
|
17
17
|
end
|
data/lib/pin_up/base.rb
CHANGED
|
@@ -19,9 +19,9 @@ module Pin
|
|
|
19
19
|
@@auth = { username: @key, password: '' }
|
|
20
20
|
@@timeout = timeout
|
|
21
21
|
@@base_url = if env == :live
|
|
22
|
-
'https://api.
|
|
22
|
+
'https://api.pinpayments.com/1/'
|
|
23
23
|
elsif env == :test
|
|
24
|
-
'https://test-api.
|
|
24
|
+
'https://test-api.pinpayments.com/1/'
|
|
25
25
|
else
|
|
26
26
|
fail "'env' option must be :live or :test. Leave blank for live payments"
|
|
27
27
|
end
|
data/lib/pin_up/card.rb
CHANGED
|
@@ -4,10 +4,10 @@ module Pin
|
|
|
4
4
|
class Card < Base
|
|
5
5
|
##
|
|
6
6
|
# creates a card given a hash of options
|
|
7
|
-
# https://
|
|
7
|
+
# https://pinpayments.com/docs/api/cards
|
|
8
8
|
# Only use if you have a secure server connection, if in doubt use
|
|
9
9
|
# the form example provided by Pin to create a card_token
|
|
10
|
-
# https://
|
|
10
|
+
# https://pinpayments.com/docs/guides/payment-forms
|
|
11
11
|
# args: card_details (Hash)
|
|
12
12
|
# returns: card object
|
|
13
13
|
def self.create(options)
|
data/lib/pin_up/charge.rb
CHANGED
|
@@ -10,7 +10,7 @@ module Pin
|
|
|
10
10
|
# if pagination is passed, access the response hash with [:response]
|
|
11
11
|
# and the pagination hash with [:pagination]
|
|
12
12
|
#
|
|
13
|
-
# https://
|
|
13
|
+
# https://pinpayments.com/docs/api/charges#get-charges
|
|
14
14
|
def self.all(page = nil, pagination = false)
|
|
15
15
|
build_collection_response(make_request(:get, { url: "charges?page=#{page}" }), pagination)
|
|
16
16
|
end
|
|
@@ -19,7 +19,7 @@ module Pin
|
|
|
19
19
|
# Find a charge for your account given a token
|
|
20
20
|
# args: token (String)
|
|
21
21
|
# returns: a charge object
|
|
22
|
-
# https://
|
|
22
|
+
# https://pinpayments.com/docs/api/charges#get-charge
|
|
23
23
|
def self.find(token)
|
|
24
24
|
build_response(make_request(:get, {url: "charges/#{token}" } ))
|
|
25
25
|
end
|
|
@@ -31,7 +31,7 @@ module Pin
|
|
|
31
31
|
# if pagination is passed, access the response hash with [:response]
|
|
32
32
|
# and the pagination hash with [:pagination]
|
|
33
33
|
#
|
|
34
|
-
# https://
|
|
34
|
+
# https://pinpayments.com/docs/api/charges#search-charges
|
|
35
35
|
def self.search(page = nil, pagination = false, **options)
|
|
36
36
|
term = ''
|
|
37
37
|
options.merge! page: page if page
|
|
@@ -46,7 +46,7 @@ module Pin
|
|
|
46
46
|
# a card_token or a customer_token
|
|
47
47
|
# args: options (Hash)
|
|
48
48
|
# returns: a charge object
|
|
49
|
-
# https://
|
|
49
|
+
# https://pinpayments.com/docs/api/charges#post-charges
|
|
50
50
|
def self.create(options = {})
|
|
51
51
|
build_response(make_request(:post, {url: 'charges', options: options} ))
|
|
52
52
|
end
|
|
@@ -54,7 +54,7 @@ module Pin
|
|
|
54
54
|
# Captures a previously authorised charge and returns its details.
|
|
55
55
|
# args: charge-token (String)
|
|
56
56
|
# returns: charge object
|
|
57
|
-
# https://
|
|
57
|
+
# https://pinpayments.com/docs/api/charges#put-charges
|
|
58
58
|
def self.capture(token)
|
|
59
59
|
build_response(make_request(:put, { url: "charges/#{token}/capture" } ))
|
|
60
60
|
end
|
data/lib/pin_up/customer.rb
CHANGED
|
@@ -10,7 +10,7 @@ module Pin
|
|
|
10
10
|
# if pagination is passed, access the response hash with [:response]
|
|
11
11
|
# and the pagination hash with [:pagination]
|
|
12
12
|
#
|
|
13
|
-
# https://
|
|
13
|
+
# https://pinpayments.com/docs/api/customers#get-customers
|
|
14
14
|
def self.all(page = nil, pagination = false)
|
|
15
15
|
build_collection_response(make_request(:get, {url: "customers?page=#{page}" } ), pagination)
|
|
16
16
|
end
|
|
@@ -19,7 +19,7 @@ module Pin
|
|
|
19
19
|
# Create a customer given customer details and a card OR a card_token
|
|
20
20
|
# args: email(String), card (Hash)
|
|
21
21
|
# returns: a customer object
|
|
22
|
-
# https://
|
|
22
|
+
# https://pinpayments.com/docs/api/customers#post-customers
|
|
23
23
|
def self.create(email, card)
|
|
24
24
|
options = if card.respond_to?(:to_hash)
|
|
25
25
|
{ card: card.to_hash }
|
|
@@ -34,7 +34,7 @@ module Pin
|
|
|
34
34
|
# Find a customer for your account given a token
|
|
35
35
|
# args: token (String)
|
|
36
36
|
# returns: a customer object
|
|
37
|
-
# https://
|
|
37
|
+
# https://pinpayments.com/docs/api/customers#get-customers
|
|
38
38
|
def self.find(token)
|
|
39
39
|
build_response(make_request(:get, {url: "customers/#{token}" } ))
|
|
40
40
|
end
|
|
@@ -44,7 +44,7 @@ module Pin
|
|
|
44
44
|
# and any of: email, card (hash),card_token
|
|
45
45
|
# args: token (String), options (Hash)
|
|
46
46
|
# returns: a customer object
|
|
47
|
-
# https://
|
|
47
|
+
# https://pinpayments.com/docs/api/customers#put-customer
|
|
48
48
|
# NB: When providing a card (hash), you need to specify
|
|
49
49
|
# the full list of details.
|
|
50
50
|
def self.update(token, options = {})
|
|
@@ -59,7 +59,7 @@ module Pin
|
|
|
59
59
|
# if pagination is passed, access the response hash with [:response]
|
|
60
60
|
# and the pagination hash with [:pagination]
|
|
61
61
|
#
|
|
62
|
-
# https://
|
|
62
|
+
# https://pinpayments.com/docs/api/customers#get-customers-charges
|
|
63
63
|
def self.charges(token, page = nil, pagination = false)
|
|
64
64
|
build_collection_response(
|
|
65
65
|
make_request(:get, {url: "customers/#{token}/charges?page=#{page}" }), pagination
|
|
@@ -74,7 +74,7 @@ module Pin
|
|
|
74
74
|
# if pagination is passed, access the response hash with [:response]
|
|
75
75
|
# and the pagination hash with [:pagination]
|
|
76
76
|
#
|
|
77
|
-
# https://
|
|
77
|
+
# https://pinpayments.com/docs/api/customers#get-customers-cards
|
|
78
78
|
def self.cards(token, page = nil, pagination = false)
|
|
79
79
|
build_collection_response(
|
|
80
80
|
make_request(:get, {url: "customers/#{token}/cards?page=#{page}" }), pagination
|
|
@@ -85,7 +85,7 @@ module Pin
|
|
|
85
85
|
# Create a card for customer given a card OR a card_token
|
|
86
86
|
# args: customer_token (String), card (Hash) or (String) see docs.
|
|
87
87
|
# returns: a card object
|
|
88
|
-
# https://
|
|
88
|
+
# https://pinpayments.com/docs/api/customers#post-customers-cards
|
|
89
89
|
def self.create_card(token, card)
|
|
90
90
|
options = if card.respond_to?(:to_hash)
|
|
91
91
|
card
|
|
@@ -100,7 +100,7 @@ module Pin
|
|
|
100
100
|
# Deletes a card for customer given a card_token
|
|
101
101
|
# args: customer_token (String), card_token (String)
|
|
102
102
|
# returns: a card object
|
|
103
|
-
# https://
|
|
103
|
+
# https://pinpayments.com/docs/api/customers#delete-customers-card
|
|
104
104
|
def self.delete_card(token, card_token)
|
|
105
105
|
build_response(make_request(:delete, {url: "customers/#{token}/cards/#{card_token}"} ))
|
|
106
106
|
end
|
data/lib/pin_up/recipient.rb
CHANGED
|
@@ -4,7 +4,7 @@ module Pin
|
|
|
4
4
|
class Recipient < Base
|
|
5
5
|
##
|
|
6
6
|
# Creates a new recipient and returns its details.
|
|
7
|
-
# https://
|
|
7
|
+
# https://pinpayments.com/docs/api/recipients#post-recipients
|
|
8
8
|
# args: options (Hash)
|
|
9
9
|
# returns: recipient (Hash)
|
|
10
10
|
def self.create(options)
|
|
@@ -19,7 +19,7 @@ module Pin
|
|
|
19
19
|
# if pagination is passed, access the response hash with [:response]
|
|
20
20
|
# and the pagination hash with [:pagination]
|
|
21
21
|
#
|
|
22
|
-
# https://
|
|
22
|
+
# https://pinpayments.com/docs/api/recipients#get-recipients
|
|
23
23
|
def self.all(page = nil, pagination = false)
|
|
24
24
|
build_collection_response(make_request(:get, {url: "recipients?page=#{page}" } ), pagination)
|
|
25
25
|
end
|
|
@@ -28,7 +28,7 @@ module Pin
|
|
|
28
28
|
# Find a recipient for your account given a token
|
|
29
29
|
# args: token (String)
|
|
30
30
|
# returns: a recipient
|
|
31
|
-
# https://
|
|
31
|
+
# https://pinpayments.com/docs/api/recipients#get-recipient
|
|
32
32
|
def self.find(token)
|
|
33
33
|
build_response(make_request(:get, {url: "recipients/#{token}" } ))
|
|
34
34
|
end
|
|
@@ -38,7 +38,7 @@ module Pin
|
|
|
38
38
|
# and any of: email, name, bank_account (hash)
|
|
39
39
|
# args: token (String), options (Hash)
|
|
40
40
|
# returns: a recipient
|
|
41
|
-
# https://
|
|
41
|
+
# https://pinpayments.com/docs/api/recipients#put-recipient
|
|
42
42
|
def self.update(token, options = {})
|
|
43
43
|
build_response(make_request(:put, { url: "recipients/#{token}", options: options }))
|
|
44
44
|
end
|
data/lib/pin_up/refund.rb
CHANGED
|
@@ -10,7 +10,7 @@ module Pin
|
|
|
10
10
|
# if pagination is passed, access the response hash with [:response]
|
|
11
11
|
# and the pagination hash with [:pagination]
|
|
12
12
|
#
|
|
13
|
-
# https://
|
|
13
|
+
# https://pinpayments.com/docs/api/refunds#get-refunds
|
|
14
14
|
def self.find(token, page = nil, pagination = false)
|
|
15
15
|
build_collection_response(make_request(:get, { url: "charges/#{token}/refunds?page=#{page}" } ), pagination)
|
|
16
16
|
end
|
|
@@ -20,7 +20,7 @@ module Pin
|
|
|
20
20
|
# args: token (String), amount (String - optional)
|
|
21
21
|
# returns: a refund object
|
|
22
22
|
# if no amount is passed in, the full amount of the charge will be refunded
|
|
23
|
-
# https://
|
|
23
|
+
# https://pinpayments.com/docs/api/refunds#post-refunds
|
|
24
24
|
def self.create(token, amount = nil)
|
|
25
25
|
options = { amount: amount }
|
|
26
26
|
build_response(make_request(:post, { url: "charges/#{token}/refunds", options: options } ))
|
data/lib/pin_up/transfer.rb
CHANGED
|
@@ -4,7 +4,7 @@ module Pin
|
|
|
4
4
|
class Transfer < Base
|
|
5
5
|
##
|
|
6
6
|
# Creates a new transfer and returns its details.
|
|
7
|
-
# https://
|
|
7
|
+
# https://pinpayments.com/docs/api/transfers#post-transfers
|
|
8
8
|
# args: options (Hash)
|
|
9
9
|
def self.create(options)
|
|
10
10
|
build_response(make_request(:post, { url: 'transfers', options: options }))
|
|
@@ -17,7 +17,7 @@ module Pin
|
|
|
17
17
|
# if pagination is passed, access the response hash with [:response]
|
|
18
18
|
# and the pagination hash with [:pagination]
|
|
19
19
|
#
|
|
20
|
-
# https://
|
|
20
|
+
# https://pinpayments.com/docs/api/transfers#get-transfers
|
|
21
21
|
def self.all(page = nil, pagination = false)
|
|
22
22
|
build_collection_response(make_request(:get, {url: "transfers?page=#{page}" } ), pagination)
|
|
23
23
|
end
|
|
@@ -26,7 +26,7 @@ module Pin
|
|
|
26
26
|
# Returns the details of a transfer.
|
|
27
27
|
# args: token (String)
|
|
28
28
|
# returns: a transfer
|
|
29
|
-
# https://
|
|
29
|
+
# https://pinpayments.com/docs/api/transfers#get-transfer
|
|
30
30
|
def self.find(token)
|
|
31
31
|
build_response(make_request(:get, {url: "transfers/#{token}" } ))
|
|
32
32
|
end
|
|
@@ -38,7 +38,7 @@ module Pin
|
|
|
38
38
|
# if pagination is passed, access the response hash with [:response]
|
|
39
39
|
# and the pagination hash with [:pagination]
|
|
40
40
|
#
|
|
41
|
-
# https://
|
|
41
|
+
# https://pinpayments.com/docs/api/transfers#search-transfers
|
|
42
42
|
def self.search(page = nil, pagination = false, **options)
|
|
43
43
|
term = ''
|
|
44
44
|
options.merge! page: page if page
|
|
@@ -53,7 +53,7 @@ module Pin
|
|
|
53
53
|
# Returns the line items associated with transfer.
|
|
54
54
|
# args: token (String), page (Fixnum), pagination (Boolean)
|
|
55
55
|
#
|
|
56
|
-
# https://
|
|
56
|
+
# https://pinpayments.com/docs/api/transfers#get-transfer-line-items
|
|
57
57
|
def self.line_items(token, page = nil, pagination = false)
|
|
58
58
|
build_collection_response(make_request(:get, {url: "transfers/#{token}/line_items?page=#{page}" } ), pagination)
|
|
59
59
|
end
|
|
@@ -10,14 +10,14 @@ module Pin
|
|
|
10
10
|
# if pagination is passed, access the response hash with [:response]
|
|
11
11
|
# and the pagination hash with [:pagination]
|
|
12
12
|
#
|
|
13
|
-
# https://
|
|
13
|
+
# https://pinpayments.com/docs/api/webhook_endpoints#get-webhook_endpoints
|
|
14
14
|
def self.all(page = nil, pagination = false)
|
|
15
15
|
build_collection_response(make_request(:get, {url: "webhook_endpoints?page=#{page}" } ), pagination)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
##
|
|
19
19
|
# creates a webhook endpoint given a hash of options
|
|
20
|
-
# https://
|
|
20
|
+
# https://pinpayments.com/docs/api/webhook_endpoints
|
|
21
21
|
# args: url (Hash)
|
|
22
22
|
# returns: webhook object
|
|
23
23
|
def self.create(options)
|
|
@@ -28,7 +28,7 @@ module Pin
|
|
|
28
28
|
# Find a webhook endpoint for your account given a token
|
|
29
29
|
# args: token (String)
|
|
30
30
|
# returns: a webhook endpoint object
|
|
31
|
-
# https://
|
|
31
|
+
# https://pinpayments.com/docs/api/webhook_endpoints#get-webhook_endpoints
|
|
32
32
|
def self.find(token)
|
|
33
33
|
build_response(make_request(:get, {url: "webhook_endpoints/#{token}" } ))
|
|
34
34
|
end
|
|
@@ -37,7 +37,7 @@ module Pin
|
|
|
37
37
|
# Delete a webhook endpoint for your account given a token
|
|
38
38
|
# args: token (String)
|
|
39
39
|
# returns: nil
|
|
40
|
-
# https://
|
|
40
|
+
# https://pinpayments.com/docs/api/webhook_endpoints#delete-webhook_endpoints
|
|
41
41
|
def self.delete(token)
|
|
42
42
|
build_response(make_request(:delete, {url: "webhook_endpoints/#{token}" } ))
|
|
43
43
|
end
|
data/pin_up.gemspec
CHANGED
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "pin_up".freeze
|
|
9
|
-
s.version = "1.4.
|
|
9
|
+
s.version = "1.4.1"
|
|
10
10
|
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
12
|
s.require_paths = ["lib".freeze]
|
|
13
13
|
s.authors = ["Daniel Nitsikopoulos".freeze]
|
|
14
14
|
s.date = "2018-06-15"
|
|
15
|
-
s.description = "A Ruby gem wrapper for the pin-payments (
|
|
15
|
+
s.description = "A Ruby gem wrapper for the pin-payments (pinpayments.com) API".freeze
|
|
16
16
|
s.email = "dnitza@gmail.com".freeze
|
|
17
17
|
s.extra_rdoc_files = [
|
|
18
18
|
"LICENSE.txt",
|
|
@@ -71,36 +71,19 @@ Gem::Specification.new do |s|
|
|
|
71
71
|
s.specification_version = 4
|
|
72
72
|
|
|
73
73
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
74
|
-
s.add_runtime_dependency(%q<httparty>.freeze, ["
|
|
74
|
+
s.add_runtime_dependency(%q<httparty>.freeze, ["= 0.17.0"])
|
|
75
75
|
s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
|
76
|
-
s.add_development_dependency(%q<rspec>.freeze, ["
|
|
77
|
-
s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.3.9"])
|
|
76
|
+
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.7.0"])
|
|
78
77
|
s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.7.1"])
|
|
79
|
-
s.add_development_dependency(%q<webmock>.freeze, ["
|
|
80
|
-
s.add_development_dependency(%q<vcr>.freeze, ["
|
|
81
|
-
s.add_development_dependency(%q<guard-rspec>.freeze, [">= 0"])
|
|
82
|
-
s.add_development_dependency(%q<terminal-notifier-guard>.freeze, ["~> 1.5.3"])
|
|
78
|
+
s.add_development_dependency(%q<webmock>.freeze, ["~> 3.6.0"])
|
|
79
|
+
s.add_development_dependency(%q<vcr>.freeze, ["~> 4.0.0"])
|
|
83
80
|
else
|
|
84
|
-
s.add_dependency(%q<httparty>.freeze, ["
|
|
81
|
+
s.add_dependency(%q<httparty>.freeze, ["= 0.17.0"])
|
|
85
82
|
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
|
86
|
-
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
87
|
-
s.add_dependency(%q<jeweler>.freeze, ["~> 2.3.9"])
|
|
88
|
-
s.add_dependency(%q<simplecov>.freeze, ["~> 0.7.1"])
|
|
89
|
-
s.add_dependency(%q<webmock>.freeze, [">= 0"])
|
|
90
|
-
s.add_dependency(%q<vcr>.freeze, [">= 0"])
|
|
91
|
-
s.add_dependency(%q<guard-rspec>.freeze, [">= 0"])
|
|
92
|
-
s.add_dependency(%q<terminal-notifier-guard>.freeze, ["~> 1.5.3"])
|
|
93
83
|
end
|
|
94
84
|
else
|
|
95
|
-
s.add_dependency(%q<httparty>.freeze, ["
|
|
85
|
+
s.add_dependency(%q<httparty>.freeze, ["= 0.17.0"])
|
|
96
86
|
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
|
97
|
-
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
98
|
-
s.add_dependency(%q<jeweler>.freeze, ["~> 2.3.9"])
|
|
99
|
-
s.add_dependency(%q<simplecov>.freeze, ["~> 0.7.1"])
|
|
100
|
-
s.add_dependency(%q<webmock>.freeze, [">= 0"])
|
|
101
|
-
s.add_dependency(%q<vcr>.freeze, [">= 0"])
|
|
102
|
-
s.add_dependency(%q<guard-rspec>.freeze, [">= 0"])
|
|
103
|
-
s.add_dependency(%q<terminal-notifier-guard>.freeze, ["~> 1.5.3"])
|
|
104
87
|
end
|
|
105
88
|
end
|
|
106
89
|
|
data/spec/base_spec.rb
CHANGED
|
@@ -12,11 +12,11 @@ RSpec.describe 'Base', :vcr, class: Pin::Base do
|
|
|
12
12
|
|
|
13
13
|
it 'should set environment to live if no env set' do
|
|
14
14
|
@pin = Pin::Base.new('KEY', :live)
|
|
15
|
-
expect(@pin.base_uri).to eq 'https://api.
|
|
15
|
+
expect(@pin.base_uri).to eq 'https://api.pinpayments.com/1/'
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
it 'should set environment to test when set' do
|
|
19
|
-
expect(@test_pin.base_uri).to eq 'https://test-api.
|
|
19
|
+
expect(@test_pin.base_uri).to eq 'https://test-api.pinpayments.com/1/'
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
it 'should raise an error if anything other than '' :live or :test is passed to a new instance' do
|
|
@@ -24,7 +24,7 @@ RSpec.describe 'Base', :vcr, class: Pin::Base do
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
it 'should succesfully connect to Pin' do
|
|
27
|
-
stub_request(:get, "https://#{@test_pin.key}:''@test-api.
|
|
27
|
+
stub_request(:get, "https://#{@test_pin.key}:''@test-api.pinpayments.com/1/customers")
|
|
28
28
|
expect(Pin::Base.make_request(:get, { url: 'customers' }).code).to eq 200
|
|
29
29
|
end
|
|
30
30
|
|
data/spec/errors_spec.rb
CHANGED
|
@@ -239,13 +239,14 @@ describe 'Errors', :vcr, class: Pin::PinError do
|
|
|
239
239
|
end
|
|
240
240
|
end
|
|
241
241
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
end
|
|
242
|
+
# Name is now optional in the API
|
|
243
|
+
# it 'should raise a 422 when updating a plan token and any field validation fails' do
|
|
244
|
+
# expect { Pin::Plan.update(plan_token, { currency: 'USD' }) }.to raise_error do |error|
|
|
245
|
+
# expect(error).to be_a Pin::InvalidResource
|
|
246
|
+
# expect(error.response['messages'][0]).to match a_hash_including("message"=>"Name can't be blank")
|
|
247
|
+
# expect(error.response).to be_a Hash
|
|
248
|
+
# end
|
|
249
|
+
# end
|
|
249
250
|
|
|
250
251
|
it 'should raise a 400 cannot delete plan which has active subscriptions' do
|
|
251
252
|
end
|
|
@@ -281,7 +282,7 @@ describe 'Errors', :vcr, class: Pin::PinError do
|
|
|
281
282
|
subscription_w_no_plan_token = subscription_1.tap { |h| h[:plan_token] = '' }
|
|
282
283
|
expect { Pin::Subscription.create(subscription_w_no_plan_token) }.to raise_error do |error|
|
|
283
284
|
expect(error).to be_a Pin::InvalidResource
|
|
284
|
-
expect(error.response['messages'][0]).to match a_hash_including("message"=>"Plan must
|
|
285
|
+
expect(error.response['messages'][0]).to match a_hash_including("message"=>"Plan token must be present")
|
|
285
286
|
end
|
|
286
287
|
end
|
|
287
288
|
|
data/spec/plan_spec.rb
CHANGED
|
@@ -21,9 +21,7 @@ describe 'Plan', :vcr, class: Pin::Plan do
|
|
|
21
21
|
interval: 1,
|
|
22
22
|
interval_unit: 'day',
|
|
23
23
|
setup_amount: 27900,
|
|
24
|
-
trial_amount: 0
|
|
25
|
-
trial_interval: '',
|
|
26
|
-
trial_interval_unit: '' }
|
|
24
|
+
trial_amount: 0}
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
let(:plan_2_token) {
|
|
@@ -102,9 +100,9 @@ describe 'Plan', :vcr, class: Pin::Plan do
|
|
|
102
100
|
end
|
|
103
101
|
|
|
104
102
|
it 'should create a new plan and return its details' do
|
|
105
|
-
|
|
103
|
+
res = Pin::Plan.create(plan)
|
|
104
|
+
expect(res)
|
|
106
105
|
.to match a_hash_including("name"=>match(/(Plan)/),
|
|
107
|
-
"token"=>match(/(plan)[_]([\w-]{22})/),
|
|
108
106
|
"amount"=>1000,
|
|
109
107
|
"currency"=>"AUD",
|
|
110
108
|
"setup_amount"=>0,
|
|
@@ -113,8 +111,9 @@ describe 'Plan', :vcr, class: Pin::Plan do
|
|
|
113
111
|
"interval_unit"=>"day",
|
|
114
112
|
"trial_interval"=>7,
|
|
115
113
|
"trial_interval_unit"=>"day",
|
|
116
|
-
"
|
|
117
|
-
"
|
|
114
|
+
"created_at"=>match(/\d/),
|
|
115
|
+
"customer_permissions"=>["cancel"],
|
|
116
|
+
"token"=>match(/(plan)[_]([\w-]{22})/),
|
|
118
117
|
"active_subscriptions"=>0,
|
|
119
118
|
"trial_subscriptions"=>0)
|
|
120
119
|
end
|
data/spec/subscription_spec.rb
CHANGED
|
@@ -21,9 +21,7 @@ describe 'Subscription', :vcr, class: Pin::Subscription do
|
|
|
21
21
|
interval: 30,
|
|
22
22
|
interval_unit: 'day',
|
|
23
23
|
setup_amount: 27900,
|
|
24
|
-
trial_amount: 0
|
|
25
|
-
trial_interval: '',
|
|
26
|
-
trial_interval_unit: '' }
|
|
24
|
+
trial_amount: 0 }
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
let(:plan_1_token) {
|
|
@@ -150,7 +148,7 @@ describe 'Subscription', :vcr, class: Pin::Subscription do
|
|
|
150
148
|
end
|
|
151
149
|
|
|
152
150
|
it 'should not list subscriptions for a given page if there are no subscriptions' do
|
|
153
|
-
request = Pin::Subscription.all(
|
|
151
|
+
request = Pin::Subscription.all(250, true)
|
|
154
152
|
expect(request[:response]).to eq []
|
|
155
153
|
end
|
|
156
154
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
+
require 'securerandom'
|
|
2
3
|
|
|
3
4
|
RSpec.describe 'WebhookEndpoints', :vcr, class: Pin::WebhookEndpoints do
|
|
4
5
|
let(:token) {
|
|
5
|
-
Pin::WebhookEndpoints.create({ url: "http://example.com/webhooks#{
|
|
6
|
+
Pin::WebhookEndpoints.create({ url: "http://example.com/webhooks#{SecureRandom.urlsafe_base64}/" })['token']
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
before(:each) do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pin_up
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.4.
|
|
4
|
+
version: 1.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Nitsikopoulos
|
|
@@ -14,16 +14,16 @@ dependencies:
|
|
|
14
14
|
name: httparty
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - '='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
19
|
+
version: 0.17.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- -
|
|
24
|
+
- - '='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.
|
|
26
|
+
version: 0.17.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rdoc
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -40,32 +40,18 @@ dependencies:
|
|
|
40
40
|
version: '3.12'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rspec
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: jeweler
|
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
|
58
44
|
requirements:
|
|
59
45
|
- - "~>"
|
|
60
46
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
47
|
+
version: 3.7.0
|
|
62
48
|
type: :development
|
|
63
49
|
prerelease: false
|
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
51
|
requirements:
|
|
66
52
|
- - "~>"
|
|
67
53
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
54
|
+
version: 3.7.0
|
|
69
55
|
- !ruby/object:Gem::Dependency
|
|
70
56
|
name: simplecov
|
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -84,59 +70,31 @@ dependencies:
|
|
|
84
70
|
name: webmock
|
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
|
86
72
|
requirements:
|
|
87
|
-
- - "
|
|
73
|
+
- - "~>"
|
|
88
74
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
75
|
+
version: 3.6.0
|
|
90
76
|
type: :development
|
|
91
77
|
prerelease: false
|
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
79
|
requirements:
|
|
94
|
-
- - "
|
|
80
|
+
- - "~>"
|
|
95
81
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
82
|
+
version: 3.6.0
|
|
97
83
|
- !ruby/object:Gem::Dependency
|
|
98
84
|
name: vcr
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - ">="
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0'
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - ">="
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0'
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: guard-rspec
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - ">="
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0'
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - ">="
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: terminal-notifier-guard
|
|
127
85
|
requirement: !ruby/object:Gem::Requirement
|
|
128
86
|
requirements:
|
|
129
87
|
- - "~>"
|
|
130
88
|
- !ruby/object:Gem::Version
|
|
131
|
-
version:
|
|
89
|
+
version: 4.0.0
|
|
132
90
|
type: :development
|
|
133
91
|
prerelease: false
|
|
134
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
93
|
requirements:
|
|
136
94
|
- - "~>"
|
|
137
95
|
- !ruby/object:Gem::Version
|
|
138
|
-
version:
|
|
139
|
-
description: A Ruby gem wrapper for the pin-payments (
|
|
96
|
+
version: 4.0.0
|
|
97
|
+
description: A Ruby gem wrapper for the pin-payments (pinpayments.com) API
|
|
140
98
|
email: dnitza@gmail.com
|
|
141
99
|
executables: []
|
|
142
100
|
extensions: []
|
|
@@ -205,8 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
205
163
|
- !ruby/object:Gem::Version
|
|
206
164
|
version: '0'
|
|
207
165
|
requirements: []
|
|
208
|
-
|
|
209
|
-
rubygems_version: 2.7.3
|
|
166
|
+
rubygems_version: 3.0.3
|
|
210
167
|
signing_key:
|
|
211
168
|
specification_version: 4
|
|
212
169
|
summary: A Ruby gem wrapper for the pin-payments API
|