uphold 1.1.1 → 1.2.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 +11 -4
- data/lib/uphold/api/auth_token.rb +9 -5
- data/lib/uphold/api/endpoints.rb +1 -0
- data/lib/uphold/api/private_transaction.rb +10 -0
- data/lib/uphold/version.rb +1 -1
- data/spec/unit/api/private_transaction_spec.rb +18 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b06b5b6b81ab035ed8ed1c06625127d682d57ac
|
4
|
+
data.tar.gz: 5bd5cdb7d9c5c12b4809e91c52c9028fb1ee1152
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07b191dcb567fe6e7d6e1b1f7b021c9e432307800d65b30f5c54234661a06f3e6380b7e3c07aa91b824c6fbc51746775657be218599cf8a72da7aa1a93c2ef6f
|
7
|
+
data.tar.gz: dbc6966ce2dc0c278bb332bd3d628b109824f67dae5a0bafaa942236f7e2430365177565de06f470dce38a07b99d2a8e874a75882f90ffc4917f052d5fec0862
|
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# Uphold
|
2
2
|
|
3
|
-
[![Gem Version](https://badge.fury.io/rb/uphold
|
4
|
-
[![Build Status](https://travis-ci.org/subvisual/uphold-ruby.svg?branch=master)](https://travis-ci.org/subvisual/uphold-ruby)
|
5
|
-
[![Code Climate](https://codeclimate.com/github/subvisual/uphold-ruby/badges/gpa.svg)](https://codeclimate.com/github/subvisual/uphold-ruby)
|
6
|
-
[![Test Coverage](https://codeclimate.com/github/subvisual/uphold-ruby/badges/coverage.svg)](https://codeclimate.com/github/subvisual/uphold-ruby)
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/uphold.svg)](http://badge.fury.io/rb/uphold)
|
4
|
+
[![Build Status](https://travis-ci.org/subvisual/uphold-sdk-ruby.svg?branch=master)](https://travis-ci.org/subvisual/uphold-sdk-ruby)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/subvisual/uphold-sdk-ruby/badges/gpa.svg)](https://codeclimate.com/github/subvisual/uphold-sdk-ruby)
|
6
|
+
[![Test Coverage](https://codeclimate.com/github/subvisual/uphold-sdk-ruby/badges/coverage.svg)](https://codeclimate.com/github/subvisual/uphold-sdk-ruby/coverage)
|
7
7
|
|
8
8
|
A ruby client for the [Uphold](https://uphold.com/) API.
|
9
9
|
|
@@ -219,6 +219,13 @@ client.commit_transaction(card_id: 'a6d35fcd-xxxx-9c9d1dda6d57', transaction_id:
|
|
219
219
|
'd51b4e4e-9827-40fb-8763-e0ea2880085b')
|
220
220
|
```
|
221
221
|
|
222
|
+
**Create and commit a transaction in a single request:**
|
223
|
+
|
224
|
+
```ruby
|
225
|
+
client.create_and_commit_transaction(card_id: 'a6d35fcd-xxxx-9c9d1dda6d57', currency:
|
226
|
+
'BTC', amount: 0.1, destination: 'foo@bar.com')
|
227
|
+
```
|
228
|
+
|
222
229
|
**Cancel a transaction:**
|
223
230
|
|
224
231
|
```ruby
|
@@ -7,15 +7,19 @@ module Uphold
|
|
7
7
|
request_data = Uphold::RequestData.new(
|
8
8
|
Endpoints::AUTH,
|
9
9
|
Entities::AuthToken,
|
10
|
-
|
11
|
-
'X-Uphold-OTP' => otp,
|
12
|
-
'X-Bitreserve-OTP' => otp,
|
13
|
-
'Authorization' => 'Basic ' + Base64.encode64("#{username}:#{password}")
|
14
|
-
},
|
10
|
+
auth_headers(username, password, otp),
|
15
11
|
description: 'Uphold ruby'
|
16
12
|
)
|
17
13
|
Request.perform_with_object(:post, request_data)
|
18
14
|
end
|
15
|
+
|
16
|
+
def auth_headers(username, password, otp)
|
17
|
+
{
|
18
|
+
'X-Uphold-OTP' => otp,
|
19
|
+
'X-Bitreserve-OTP' => otp,
|
20
|
+
'Authorization' => 'Basic ' + Base64.encode64("#{username}:#{password}")
|
21
|
+
}
|
22
|
+
end
|
19
23
|
end
|
20
24
|
end
|
21
25
|
end
|
data/lib/uphold/api/endpoints.rb
CHANGED
@@ -3,6 +3,7 @@ module Uphold
|
|
3
3
|
AUTH = '/me/tokens'
|
4
4
|
CARD = '/me/cards'
|
5
5
|
CARD_PRIVATE_TRANSACTIONS = CARD + '/:card/transactions'
|
6
|
+
CREATE_AND_COMMIT_TRANSACTION = CARD_PRIVATE_TRANSACTIONS + '?commit=true'
|
6
7
|
COMMIT_TRANSACTION = CARD_PRIVATE_TRANSACTIONS + '/:id/commit'
|
7
8
|
CANCEL_TRANSACTION = CARD_PRIVATE_TRANSACTIONS + '/:id/cancel'
|
8
9
|
RESEND_TRANSACTION = CARD_PRIVATE_TRANSACTIONS + '/:id/resend'
|
@@ -16,6 +16,16 @@ module Uphold
|
|
16
16
|
Request.perform_with_object(:post, request_data)
|
17
17
|
end
|
18
18
|
|
19
|
+
def create_and_commit_transaction(card_id: nil, currency: nil, amount: 0, destination: nil)
|
20
|
+
request_data = RequestData.new(
|
21
|
+
Endpoints.with_placeholders(Endpoints::CREATE_AND_COMMIT_TRANSACTION, ':card' => card_id),
|
22
|
+
Entities::Transaction,
|
23
|
+
authorization_header,
|
24
|
+
card_id: card_id, denomination: { currency: currency, amount: amount }, destination: destination
|
25
|
+
)
|
26
|
+
Request.perform_with_object(:post, request_data)
|
27
|
+
end
|
28
|
+
|
19
29
|
def cancel_transaction(card_id: nil, transaction_id: nil)
|
20
30
|
request_data = transaction_request_data(Endpoints::CANCEL_TRANSACTION, card_id, transaction_id)
|
21
31
|
Request.perform_with_object(:post, request_data)
|
data/lib/uphold/version.rb
CHANGED
@@ -41,6 +41,24 @@ module Uphold
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
+
context '#create_and_commit_transaction' do
|
45
|
+
it 'creates a transaction for a specific card' do
|
46
|
+
card_id = '1234'
|
47
|
+
request_data = RequestData.new(
|
48
|
+
Endpoints.with_placeholders(Endpoints::CREATE_AND_COMMIT_TRANSACTION, ':card' => card_id),
|
49
|
+
Entities::Transaction,
|
50
|
+
client.authorization_header,
|
51
|
+
card_id: card_id, denomination: { currency: 'USD', amount: 10 }, destination: 'foo@bar.com'
|
52
|
+
)
|
53
|
+
allow(Request).to receive(:perform_with_object)
|
54
|
+
|
55
|
+
client.create_and_commit_transaction(card_id: card_id, currency: 'USD', amount: 10, destination: 'foo@bar.com')
|
56
|
+
|
57
|
+
expect(Request).to have_received(:perform_with_object).
|
58
|
+
with(:post, request_data)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
44
62
|
context '#cancel_transaction' do
|
45
63
|
it 'cancels a transaction for a specific card' do
|
46
64
|
card_id = '1234'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uphold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Subvisual
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -245,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
245
|
version: '0'
|
246
246
|
requirements: []
|
247
247
|
rubyforge_project:
|
248
|
-
rubygems_version: 2.
|
248
|
+
rubygems_version: 2.5.1
|
249
249
|
signing_key:
|
250
250
|
specification_version: 4
|
251
251
|
summary: A wrapper for the Uphold API
|