tangocard 4.0.0 → 4.1.0
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/lib/tangocard.rb +4 -1
- data/lib/tangocard/account.rb +117 -3
- data/lib/tangocard/account_delete_credit_card_failed_exception.rb +3 -0
- data/lib/tangocard/account_fund_failed_exception.rb +3 -0
- data/lib/tangocard/account_register_credit_card_failed_exception.rb +3 -0
- data/lib/tangocard/raas.rb +38 -1
- data/lib/tangocard/response.rb +5 -1
- data/lib/tangocard/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b8c6e8dd748f73ba39b6300e69450556158be90
|
4
|
+
data.tar.gz: eea2b48a8cd364c9f79871e93011467d34df83d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1c2a0c08a8962c0cd89153bf5e20a4e19a95653a9632884acb18941e02e5f437653f2a3f5c1b3454ae4d265dead80605c77ab09ceffc08dc822fdebf3d2fc78
|
7
|
+
data.tar.gz: 6b680dbf60193d42cfafdd4ae5e0719b6b64700594bbfcc081666712ddce9888b8aed439f3d22797112e9060a58b1967050532e596d8e40d3108a099648f44ed
|
data/lib/tangocard.rb
CHANGED
@@ -30,8 +30,11 @@ require 'tangocard/raas'
|
|
30
30
|
require 'tangocard/account'
|
31
31
|
require 'tangocard/account_create_failed_exception'
|
32
32
|
require 'tangocard/account_not_found_exception'
|
33
|
+
require 'tangocard/account_delete_credit_card_failed_exception'
|
34
|
+
require 'tangocard/account_register_credit_card_failed_exception'
|
35
|
+
require 'tangocard/account_fund_failed_exception'
|
33
36
|
require 'tangocard/brand'
|
34
37
|
require 'tangocard/order'
|
35
38
|
require 'tangocard/order_create_failed_exception'
|
36
39
|
require 'tangocard/order_not_found_exception'
|
37
|
-
require 'tangocard/reward'
|
40
|
+
require 'tangocard/reward'
|
data/lib/tangocard/account.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class Tangocard::Account
|
2
|
-
attr_reader :customer, :identifier, :email, :available_balance
|
2
|
+
attr_reader :customer, :identifier, :email, :available_balance, :cc_token
|
3
3
|
|
4
4
|
private_class_method :new
|
5
5
|
|
@@ -71,10 +71,98 @@ class Tangocard::Account
|
|
71
71
|
@available_balance
|
72
72
|
end
|
73
73
|
|
74
|
+
# Register a credit card
|
75
|
+
# Raises Tango::AccountRegisterCreditCardFailedException on failure.
|
76
|
+
# Example:
|
77
|
+
# >> account.register_credit_card('128.128.128.128', Hash (see example below))
|
78
|
+
# => {"success"=>true, "cc_token"=>"33041234", "active_date"=>1439286111}
|
79
|
+
#
|
80
|
+
# Arguments:
|
81
|
+
# client_ip: (String)
|
82
|
+
# credit_card: (Hash) - see
|
83
|
+
# https://github.com/tangocarddev/RaaS/blob/master/cc_register.schema.json for details
|
84
|
+
#
|
85
|
+
# Credit Card Hash Example:
|
86
|
+
#
|
87
|
+
# {
|
88
|
+
# 'number' => '4111111111111111',
|
89
|
+
# 'expiration' => '01/17',
|
90
|
+
# 'security_code' => '123',
|
91
|
+
# 'billing_address' => {
|
92
|
+
# 'f_name' => 'Jane',
|
93
|
+
# 'l_name' => 'User',
|
94
|
+
# 'address' => '123 Main Street',
|
95
|
+
# 'city' => 'Anytown',
|
96
|
+
# 'state' => 'NY',
|
97
|
+
# 'zip' => '11222',
|
98
|
+
# 'country' => 'USA',
|
99
|
+
# 'email' => 'jane@company.com'
|
100
|
+
# }
|
101
|
+
# }
|
102
|
+
def register_credit_card(client_ip, credit_card)
|
103
|
+
params = {
|
104
|
+
'client_ip' => client_ip,
|
105
|
+
'credit_card' => credit_card,
|
106
|
+
'customer' => customer,
|
107
|
+
'account_identifier' => identifier
|
108
|
+
}
|
109
|
+
|
110
|
+
response = Tangocard::Raas.register_credit_card(params)
|
111
|
+
if response.success?
|
112
|
+
@cc_token = response.parsed_response['cc_token']
|
113
|
+
response.parsed_response
|
114
|
+
else
|
115
|
+
raise Tangocard::AccountRegisterCreditCardFailedException, "#{response.denial_message}"
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
# Add funds to the account.
|
120
|
+
# Raises Tangocard::AccountFundFailedException on failure.
|
121
|
+
# Example:
|
122
|
+
# >> account.cc_fund(5000, '128.128.128.128', '12345678', '123')
|
123
|
+
# => {"success"=>true, "fund_id"=>"RF13-09261098-12", "amount"=>5000}
|
124
|
+
|
125
|
+
# Arguments:
|
126
|
+
# amount: (Integer)
|
127
|
+
# client_ip: (String)
|
128
|
+
# cc_token: (String)
|
129
|
+
# security_code: (String)
|
130
|
+
# def cc_fund(amount, client_ip, cc_token, security_code)
|
131
|
+
# params = {
|
132
|
+
# 'amount' => amount,
|
133
|
+
# 'client_ip' => client_ip,
|
134
|
+
# 'cc_token' => cc_token,
|
135
|
+
# 'customer' => customer,
|
136
|
+
# 'account_identifier' => identifier,
|
137
|
+
# 'security_code' => security_code
|
138
|
+
# }
|
139
|
+
#
|
140
|
+
# response = Tangocard::Raas.cc_fund_account(params)
|
141
|
+
# end
|
142
|
+
#
|
143
|
+
def cc_fund(amount, client_ip, cc_token, security_code)
|
144
|
+
params = {
|
145
|
+
'amount' => amount,
|
146
|
+
'client_ip' => client_ip,
|
147
|
+
'cc_token' => cc_token,
|
148
|
+
'customer' => customer,
|
149
|
+
'account_identifier' => identifier,
|
150
|
+
'security_code' => security_code
|
151
|
+
}
|
152
|
+
|
153
|
+
response = Tangocard::Raas.cc_fund_account(params)
|
154
|
+
if response.success?
|
155
|
+
response.parsed_response
|
156
|
+
else
|
157
|
+
raise Tangocard::AccountFundFailedException, "#{response.error_message} #{response.denial_message} #{response.invalid_inputs}"
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
# (DEPRECATED)
|
74
162
|
# Add funds to the account.
|
75
163
|
#
|
76
164
|
# Example:
|
77
|
-
# >> account.fund(10000, '128.128.128.128', Hash (see example below))
|
165
|
+
# >> account.fund!(10000, '128.128.128.128', Hash (see example below))
|
78
166
|
# => #<Tangocard::Account:0x007f9a6fec0138 @customer="bonusly", @email="dev@bonus.ly", @identifier="test", @available_balance=0>
|
79
167
|
#
|
80
168
|
# Arguments:
|
@@ -100,6 +188,8 @@ class Tangocard::Account
|
|
100
188
|
# }
|
101
189
|
# }
|
102
190
|
def fund!(amount, client_ip, credit_card)
|
191
|
+
warn "[DEPRECATION] `fund!` is deprecated. Please use `cc_fund` instead. See https://github.com/tangocarddev/RaaS#fund-a-platforms-account"
|
192
|
+
|
103
193
|
params = {
|
104
194
|
'amount' => amount,
|
105
195
|
'client_ip' => client_ip,
|
@@ -109,4 +199,28 @@ class Tangocard::Account
|
|
109
199
|
}
|
110
200
|
Tangocard::Raas.fund_account(params)
|
111
201
|
end
|
112
|
-
|
202
|
+
|
203
|
+
# Delete a credit card from an account
|
204
|
+
# Raises Tangocard::AccountDeleteCreditCardFailedException failure.
|
205
|
+
# Example:
|
206
|
+
# >> account.delete_credit_card("12345678")
|
207
|
+
# => {"success"=>true, "message": "This card is no longer present in the system"}
|
208
|
+
|
209
|
+
# Arguments:
|
210
|
+
# cc_token: (String)
|
211
|
+
def delete_credit_card(cc_token)
|
212
|
+
params = {
|
213
|
+
'cc_token' => cc_token,
|
214
|
+
'customer' => customer,
|
215
|
+
'account_identifier' => identifier
|
216
|
+
}
|
217
|
+
|
218
|
+
response = Tangocard::Raas.delete_credit_card(params)
|
219
|
+
if response.success?
|
220
|
+
response.parsed_response
|
221
|
+
else
|
222
|
+
raise Tangocard::AccountDeleteCreditCardFailedException, "#{response.error_message}"
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
end
|
data/lib/tangocard/raas.rb
CHANGED
@@ -25,6 +25,7 @@ class Tangocard::Raas
|
|
25
25
|
Tangocard::Response.new(get(endpoint + "/accounts/#{params['customer']}/#{params['identifier']}", basic_auth_param))
|
26
26
|
end
|
27
27
|
|
28
|
+
# (Deprecated)
|
28
29
|
# Funds an account. Returns Tangocard::Response object.
|
29
30
|
#
|
30
31
|
# Example:
|
@@ -37,6 +38,42 @@ class Tangocard::Raas
|
|
37
38
|
Tangocard::Response.new(post(endpoint + '/funds', {:body => params.to_json}.merge(basic_auth_param)))
|
38
39
|
end
|
39
40
|
|
41
|
+
# Funds an account. Returns Tangocard::Response object.
|
42
|
+
#
|
43
|
+
# Example:
|
44
|
+
# >> Tangocard::Raas.cc_fund_account(params)
|
45
|
+
# => #<Tangocard::Response:0x007f9a6c4bca68 ...>
|
46
|
+
#
|
47
|
+
# Arguments:
|
48
|
+
# params: (Hash - see https://github.com/tangocarddev/RaaS#fund-resources for details)
|
49
|
+
def self.cc_fund_account(params)
|
50
|
+
Tangocard::Response.new(post(endpoint + '/cc_fund', {:body => params.to_json}.merge(basic_auth_param)))
|
51
|
+
end
|
52
|
+
|
53
|
+
# Registers a credit card to an account. Returns Tangocard::Response object.
|
54
|
+
#
|
55
|
+
# Example:
|
56
|
+
# >> Tangocard::Raas.register_credit_card(params)
|
57
|
+
# => #<Tangocard::Response:0x007f9a6c4bca68 ...>
|
58
|
+
#
|
59
|
+
# Arguments:
|
60
|
+
# params: (Hash - see https://github.com/tangocarddev/RaaS#fund-resources for details)
|
61
|
+
def self.register_credit_card(params)
|
62
|
+
Tangocard::Response.new(post(endpoint + '/cc_register', {:body => params.to_json}.merge(basic_auth_param)))
|
63
|
+
end
|
64
|
+
|
65
|
+
# Deletes a credit card from an account. Returns Tangocard::Response object.
|
66
|
+
#
|
67
|
+
# Example:
|
68
|
+
# >> Tangocard::Raas.delete_credit_card(params)
|
69
|
+
# => #<Tangocard::Response:0x007f9a6c4bca68 ...>
|
70
|
+
#
|
71
|
+
# Arguments:
|
72
|
+
# params: (Hash - see https://github.com/tangocarddev/RaaS#delete-a-credit-card-from-an-account for details)
|
73
|
+
def self.delete_credit_card(params)
|
74
|
+
Tangocard::Response.new(post(endpoint + '/cc_unregister', {:body => params.to_json}.merge(basic_auth_param)))
|
75
|
+
end
|
76
|
+
|
40
77
|
# Retrieve all rewards. Returns Tangocard::Response object.
|
41
78
|
#
|
42
79
|
# Example:
|
@@ -110,4 +147,4 @@ class Tangocard::Raas
|
|
110
147
|
def self.endpoint
|
111
148
|
Tangocard.configuration.base_uri + '/raas/v1'
|
112
149
|
end
|
113
|
-
end
|
150
|
+
end
|
data/lib/tangocard/response.rb
CHANGED
@@ -14,7 +14,11 @@ class Tangocard::Response
|
|
14
14
|
parsed_response['error_message'] rescue 'UNKNOWN ERROR'
|
15
15
|
end
|
16
16
|
|
17
|
+
def denial_message
|
18
|
+
parsed_response['denial_message'] rescue 'UNKNOWN ERROR'
|
19
|
+
end
|
20
|
+
|
17
21
|
def invalid_inputs
|
18
22
|
parsed_response['invalid_inputs'] rescue 'UNKNOWN INVALID INPUTS'
|
19
23
|
end
|
20
|
-
end
|
24
|
+
end
|
data/lib/tangocard/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tangocard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raphael Crawford-Marks
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -95,7 +95,10 @@ files:
|
|
95
95
|
- lib/tangocard.rb
|
96
96
|
- lib/tangocard/account.rb
|
97
97
|
- lib/tangocard/account_create_failed_exception.rb
|
98
|
+
- lib/tangocard/account_delete_credit_card_failed_exception.rb
|
99
|
+
- lib/tangocard/account_fund_failed_exception.rb
|
98
100
|
- lib/tangocard/account_not_found_exception.rb
|
101
|
+
- lib/tangocard/account_register_credit_card_failed_exception.rb
|
99
102
|
- lib/tangocard/brand.rb
|
100
103
|
- lib/tangocard/order.rb
|
101
104
|
- lib/tangocard/order_create_failed_exception.rb
|