bitpay-client 2.4.0 → 2.5.1905

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.
Files changed (41) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +5 -1
  3. data/.travis.yml +6 -1
  4. data/CHANGELOG.md +24 -0
  5. data/GUIDE.md +233 -0
  6. data/Gemfile +0 -4
  7. data/LICENSE.md +2 -2
  8. data/README.md +8 -79
  9. data/Rakefile +57 -2
  10. data/bitpay-client.gemspec +15 -16
  11. data/config/constants.rb +12 -1
  12. data/features/creating_invoices.feature +28 -0
  13. data/features/pairing.feature +19 -0
  14. data/features/refunds.feature +23 -0
  15. data/features/retrieving_invoices.feature +11 -0
  16. data/features/step_definitions/invoice_steps.rb +31 -0
  17. data/features/step_definitions/keygen_steps.rb +56 -0
  18. data/features/step_definitions/refund_steps.rb +37 -0
  19. data/features/step_definitions/step_helpers.rb +31 -0
  20. data/lib/bitpay/cacert.pem +1295 -1760
  21. data/lib/bitpay/client.rb +175 -0
  22. data/lib/bitpay/rest_connector.rb +106 -0
  23. data/lib/bitpay/version.rb +2 -2
  24. data/lib/bitpay_sdk.rb +28 -0
  25. data/spec/client_spec.rb +153 -6
  26. data/spec/fixtures/invoices-POST.json +29 -0
  27. data/spec/fixtures/invoices_{id}-GET.json +35 -0
  28. data/spec/fixtures/invoices_{id}_refunds-GET.json +17 -0
  29. data/spec/fixtures/invoices_{id}_refunds-POST.json +9 -0
  30. data/spec/fixtures/invoices_{id}_refunds_{refund_id}-GET.json +11 -0
  31. data/spec/fixtures/response-nodata.json +10 -0
  32. data/spec/spec_helper.rb +16 -18
  33. metadata +77 -82
  34. data/bin/bitpay +0 -3
  35. data/lib/bitpay.rb +0 -21
  36. data/lib/bitpay/cli.rb +0 -64
  37. data/lib/bitpay/cli_client.rb +0 -24
  38. data/lib/bitpay/cli_key_utils.rb +0 -40
  39. data/spec/features/pair_spec.rb +0 -25
  40. data/spec/key_utils_spec.rb +0 -26
  41. data/spec/set_constants.sh +0 -4
@@ -0,0 +1,29 @@
1
+ {
2
+ "facade": "pos/invoice",
3
+ "data": {
4
+ "url": "https://test.bitpay.com/invoice?id=2RSyNDvsiTrA31rPwnnEcd",
5
+ "status": "new",
6
+ "btcPrice": "0.037523",
7
+ "btcDue": "0.037523",
8
+ "price": 10,
9
+ "currency": "USD",
10
+ "exRates": {
11
+ "USD": 266.5
12
+ },
13
+ "invoiceTime": 1422319964413,
14
+ "expirationTime": 1422320864413,
15
+ "currentTime": 1422319964431,
16
+ "guid": "34d7be05-eb65-4f72-a2ce-79bf23e93f17",
17
+ "id": "2RSyNDvsiTrA31rPwnnEcd",
18
+ "btcPaid": "0.000000",
19
+ "rate": 266.5,
20
+ "exceptionStatus": false,
21
+ "paymentUrls": {
22
+ "BIP21": "bitcoin:mhPM48eieakd6AgCuHMwAtpFXE5yQ3N7om?amount=0.037523",
23
+ "BIP72": "bitcoin:mhPM48eieakd6AgCuHMwAtpFXE5yQ3N7om?amount=0.037523&r=https://test.bitpay.com/i/2RSyNDvsiTrA31rPwnnEcd",
24
+ "BIP72b": "bitcoin:?r=https://test.bitpay.com/i/2RSyNDvsiTrA31rPwnnEcd",
25
+ "BIP73": "https://test.bitpay.com/i/2RSyNDvsiTrA31rPwnnEcd"
26
+ },
27
+ "token": "2RPipMRUXAvt5wAfthCzF7Tj4SppBWPHGQ7hCeWYeWDm7RtwUtDds1XUNt11VTf5C6UfCAACBhsKwjW6SAocLsd7"
28
+ }
29
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "facade": "merchant/invoice",
3
+ "data": {
4
+ "url": "https://test.bitpay.com/invoice?id=CcRgegwTMs866Sr7vdLnru",
5
+ "status": "complete",
6
+ "btcPrice": "0.074661",
7
+ "btcDue": "0.000000",
8
+ "price": 15.79,
9
+ "currency": "USD",
10
+ "exRates": {
11
+ "USD": 211.49
12
+ },
13
+ "invoiceTime": 1421719631301,
14
+ "expirationTime": 1421720531301,
15
+ "currentTime": 1422316288768,
16
+ "id": "TEST_INVOICE_ID",
17
+ "btcPaid": "0.074661",
18
+ "rate": 211.49,
19
+ "exceptionStatus": false,
20
+ "transactions": [
21
+ {
22
+ "amount": 7466100,
23
+ "confirmations": 6,
24
+ "time": "2015-01-20T02:07:46.000Z",
25
+ "receivedTime": "2015-01-20T02:07:45.881Z"
26
+ }
27
+ ],
28
+ "flags": {
29
+ "refundable": true
30
+ },
31
+ "token": "MERCHANT_INVOICE_TOKEN",
32
+ "buyer": {
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "facade": "merchant/supportRequest",
3
+ "data": [
4
+ {
5
+ "id": "TEST_REQUEST_ID",
6
+ "requestDate": "2015-01-27T00:36:12.360Z",
7
+ "status": "pending",
8
+ "token": "REFUND_REQUEST_TOKEN"
9
+ },
10
+ {
11
+ "id": "ANOTHER_ID",
12
+ "requestDate": "2015-01-27T00:36:12.360Z",
13
+ "status": "OTHER_STATUS",
14
+ "token": "ANOTHER_REFUND_REQUEST_TOKEN"
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "facade": "merchant/supportRequest",
3
+ "data": {
4
+ "id": "Q6CuxYF83MfV1XgUBQBdbA",
5
+ "requestDate": "2015-01-27T00:36:12.360Z",
6
+ "status": "pending",
7
+ "token": "REFUND_REQUEST_TOKEN"
8
+ }
9
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "facade": "merchant/supportRequest",
3
+ "data": [
4
+ {
5
+ "id": "TEST_REQUEST_ID",
6
+ "requestDate": "2015-01-27T00:36:12.360Z",
7
+ "status": "pending",
8
+ "token": "REFUND_REQUEST_TOKEN"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "facile": "is easy",
3
+ "diti": [
4
+ {
5
+ "requestDate": "2015-01-27T00:36:12.360Z",
6
+ "status": "pending"
7
+ }
8
+ ]
9
+ }
10
+
@@ -1,10 +1,11 @@
1
1
  require 'webmock/rspec'
2
+ require 'pry'
2
3
  require 'coveralls'
3
4
  Coveralls.wear!
4
5
 
5
- require File.join File.dirname(__FILE__), '..', 'lib', 'bitpay.rb'
6
-
6
+ require File.join File.dirname(__FILE__), '..', 'lib', 'bitpay_sdk.rb'
7
7
  require_relative '../config/constants.rb'
8
+
8
9
  #
9
10
  ## Test Variables
10
11
  #
@@ -13,24 +14,21 @@ PEM = "-----BEGIN EC PRIVATE KEY-----\nMHQCAQEEICg7E4NN53YkaWuAwpoqjfAofjzKI7Jq1
13
14
  PUB_KEY = '038d970d6ba29dcfa190c177140fd889fadd6d2590b1ee1a6a06e255dbf22b4017'
14
15
  CLIENT_ID = "TeyN4LPrXiG5t2yuSamKqP3ynVk3F52iHrX"
15
16
 
16
- RSpec.configure do |config|
17
- config.before :each do |example|
18
- WebMock.allow_net_connect! if example.metadata[:type] == :feature
19
- end
20
-
21
- config.before :all do |example|
22
- FileUtils.mkdir_p(BitPay::BITPAY_CREDENTIALS_DIR)
23
- unless File.exists?(BitPay::PRIVATE_KEY_PATH)
24
- File.write(BitPay::PRIVATE_KEY_PATH, ENV['BITPAYPEM'].gsub("\\n", "\n"))
25
- end
26
- end
17
+ def generate_code(number)
18
+ legal_map = [*'A'..'Z'] + [*'a'..'z'] + [*0..9]
19
+ Array.new(number) { legal_map.sample }.join
27
20
  end
28
21
 
22
+
29
23
  def an_illegal_claim_code
30
- legal_map = [*'A'..'Z'] + [*'a'..'z'] + [*0..9]
31
- first_length = rand(6)
32
- short_code = (0..first_length).map{legal_map.sample}.join
33
- second_length = [*8..25].sample
34
- long_code = [*8..25].sample.times.inject([]){|arr| arr << legal_map.sample}.join
24
+ short_code = generate_code(rand(6))
25
+ long_code = generate_code(rand(8..25))
35
26
  [nil, short_code, long_code].sample
36
27
  end
28
+
29
+ ## Gets JSON responses from the fixtures directory
30
+ #
31
+ def get_fixture(name)
32
+ #JSON.parse(File.read(File.expand_path("../fixtures/#{name}", __FILE__)))
33
+ File.read(File.expand_path("../fixtures/#{name}", __FILE__))
34
+ end
metadata CHANGED
@@ -1,183 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitpay-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.1905
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bitpay, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-15 00:00:00.000000000 Z
11
+ date: 2019-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bitpay-sdk
14
+ name: bitpay-key-utils
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.1'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.1'
27
- - !ruby/object:Gem::Dependency
28
- name: json
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
17
+ - - ">="
32
18
  - !ruby/object:Gem::Version
33
- version: 1.8.1
19
+ version: '2.2'
34
20
  type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
- - - "~>"
24
+ - - ">="
39
25
  - !ruby/object:Gem::Version
40
- version: 1.8.1
26
+ version: '2.2'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: rack
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: 1.5.2
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 1.5.2
55
- - !ruby/object:Gem::Dependency
56
- name: ecdsa
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 1.2.0
62
- type: :runtime
33
+ version: '1.5'
34
+ type: :development
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
38
  - - "~>"
67
39
  - !ruby/object:Gem::Version
68
- version: 1.2.0
69
- - !ruby/object:Gem::Dependency
70
- name: commander
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
40
+ version: '1.5'
83
41
  - !ruby/object:Gem::Dependency
84
42
  name: rake
85
43
  requirement: !ruby/object:Gem::Requirement
86
44
  requirements:
87
- - - "~>"
45
+ - - '='
88
46
  - !ruby/object:Gem::Version
89
47
  version: 10.3.2
90
48
  type: :development
91
49
  prerelease: false
92
50
  version_requirements: !ruby/object:Gem::Requirement
93
51
  requirements:
94
- - - "~>"
52
+ - - '='
95
53
  - !ruby/object:Gem::Version
96
54
  version: 10.3.2
97
55
  - !ruby/object:Gem::Dependency
98
56
  name: webmock
99
57
  requirement: !ruby/object:Gem::Requirement
100
58
  requirements:
101
- - - "~>"
59
+ - - '='
102
60
  - !ruby/object:Gem::Version
103
61
  version: 1.18.0
104
62
  type: :development
105
63
  prerelease: false
106
64
  version_requirements: !ruby/object:Gem::Requirement
107
65
  requirements:
108
- - - "~>"
66
+ - - '='
109
67
  - !ruby/object:Gem::Version
110
68
  version: 1.18.0
111
69
  - !ruby/object:Gem::Dependency
112
70
  name: pry
113
71
  requirement: !ruby/object:Gem::Requirement
114
72
  requirements:
115
- - - "~>"
73
+ - - '='
116
74
  - !ruby/object:Gem::Version
117
75
  version: 0.10.1
118
76
  type: :development
119
77
  prerelease: false
120
78
  version_requirements: !ruby/object:Gem::Requirement
121
79
  requirements:
122
- - - "~>"
80
+ - - '='
123
81
  - !ruby/object:Gem::Version
124
82
  version: 0.10.1
125
83
  - !ruby/object:Gem::Dependency
126
84
  name: pry-byebug
127
85
  requirement: !ruby/object:Gem::Requirement
128
86
  requirements:
129
- - - "~>"
87
+ - - '='
130
88
  - !ruby/object:Gem::Version
131
89
  version: 2.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
96
  version: 2.0.0
139
97
  - !ruby/object:Gem::Dependency
140
98
  name: pry-rescue
141
99
  requirement: !ruby/object:Gem::Requirement
142
100
  requirements:
143
- - - "~>"
101
+ - - '='
144
102
  - !ruby/object:Gem::Version
145
103
  version: 1.4.1
146
104
  type: :development
147
105
  prerelease: false
148
106
  version_requirements: !ruby/object:Gem::Requirement
149
107
  requirements:
150
- - - "~>"
108
+ - - '='
151
109
  - !ruby/object:Gem::Version
152
110
  version: 1.4.1
153
111
  - !ruby/object:Gem::Dependency
154
- name: airborne
112
+ name: cucumber
155
113
  requirement: !ruby/object:Gem::Requirement
156
114
  requirements:
157
115
  - - "~>"
158
116
  - !ruby/object:Gem::Version
159
- version: 0.0.20
117
+ version: 1.3.17
160
118
  type: :development
161
119
  prerelease: false
162
120
  version_requirements: !ruby/object:Gem::Requirement
163
121
  requirements:
164
122
  - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 1.3.17
125
+ - !ruby/object:Gem::Dependency
126
+ name: airborne
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '='
130
+ - !ruby/object:Gem::Version
131
+ version: 0.0.20
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '='
165
137
  - !ruby/object:Gem::Version
166
138
  version: 0.0.20
167
139
  - !ruby/object:Gem::Dependency
168
140
  name: rspec
169
141
  requirement: !ruby/object:Gem::Requirement
170
142
  requirements:
171
- - - "~>"
143
+ - - '='
172
144
  - !ruby/object:Gem::Version
173
145
  version: 3.1.0
174
146
  type: :development
175
147
  prerelease: false
176
148
  version_requirements: !ruby/object:Gem::Requirement
177
149
  requirements:
178
- - - "~>"
150
+ - - '='
179
151
  - !ruby/object:Gem::Version
180
152
  version: 3.1.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: mongo
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '2.6'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '2.6'
181
167
  - !ruby/object:Gem::Dependency
182
168
  name: coveralls
183
169
  requirement: !ruby/object:Gem::Requirement
@@ -194,31 +180,41 @@ dependencies:
194
180
  version: '0'
195
181
  description: Powerful, flexible, lightweight, thread-safe interface to the BitPay
196
182
  developers API
197
- email: info@bitpay.com
198
- executables:
199
- - bitpay
183
+ email: sales-engineering@bitpay.com
184
+ executables: []
200
185
  extensions: []
201
186
  extra_rdoc_files: []
202
187
  files:
203
188
  - ".gitignore"
204
189
  - ".travis.yml"
190
+ - CHANGELOG.md
191
+ - GUIDE.md
205
192
  - Gemfile
206
193
  - LICENSE.md
207
194
  - README.md
208
195
  - Rakefile
209
- - bin/bitpay
210
196
  - bitpay-client.gemspec
211
197
  - config/constants.rb
212
- - lib/bitpay.rb
198
+ - features/creating_invoices.feature
199
+ - features/pairing.feature
200
+ - features/refunds.feature
201
+ - features/retrieving_invoices.feature
202
+ - features/step_definitions/invoice_steps.rb
203
+ - features/step_definitions/keygen_steps.rb
204
+ - features/step_definitions/refund_steps.rb
205
+ - features/step_definitions/step_helpers.rb
213
206
  - lib/bitpay/cacert.pem
214
- - lib/bitpay/cli.rb
215
- - lib/bitpay/cli_client.rb
216
- - lib/bitpay/cli_key_utils.rb
207
+ - lib/bitpay/client.rb
208
+ - lib/bitpay/rest_connector.rb
217
209
  - lib/bitpay/version.rb
210
+ - lib/bitpay_sdk.rb
218
211
  - spec/client_spec.rb
219
- - spec/features/pair_spec.rb
220
- - spec/key_utils_spec.rb
221
- - spec/set_constants.sh
212
+ - spec/fixtures/invoices-POST.json
213
+ - spec/fixtures/invoices_{id}-GET.json
214
+ - spec/fixtures/invoices_{id}_refunds-GET.json
215
+ - spec/fixtures/invoices_{id}_refunds-POST.json
216
+ - spec/fixtures/invoices_{id}_refunds_{refund_id}-GET.json
217
+ - spec/fixtures/response-nodata.json
222
218
  - spec/spec_helper.rb
223
219
  homepage: https://github.com/bitpay/ruby-client
224
220
  licenses:
@@ -230,18 +226,17 @@ require_paths:
230
226
  - lib
231
227
  required_ruby_version: !ruby/object:Gem::Requirement
232
228
  requirements:
233
- - - "~>"
229
+ - - ">="
234
230
  - !ruby/object:Gem::Version
235
231
  version: '2.1'
236
232
  required_rubygems_version: !ruby/object:Gem::Requirement
237
233
  requirements:
238
234
  - - ">="
239
235
  - !ruby/object:Gem::Version
240
- version: 1.3.4
236
+ version: '2.6'
241
237
  requirements: []
242
- rubyforge_project: bitpay-client
243
- rubygems_version: 2.4.6
238
+ rubygems_version: 3.0.3
244
239
  signing_key:
245
240
  specification_version: 4
246
- summary: Official ruby client library for the BitPay API
241
+ summary: Official Ruby library for the BitPay API
247
242
  test_files: []