tangocard 4.0.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|