Skip to content

Commit 1fb46bd

Browse files
author
Peter Joseph Olamit
authored
Merge pull request #12 from akreisman-epam/get-client-token
Add Get Client Token endpoint
2 parents dbd6cca + 48260f9 commit 1fb46bd

6 files changed

Lines changed: 109 additions & 2 deletions

File tree

CHANGELOG.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
Changelog
22
=========
33

4-
1.1.4 (current)
4+
1.1.5 (current)
5+
------------------
6+
7+
- Added Client Token endpoint
8+
9+
1.1.4 (2018-12-04)
510
------------------
611

712
- Added PayPal account endpoint

hyperwallet/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
__email__ = 'devsupport@hyperwallet.com'
77
__copyright__ = 'Copyright (c) 2017 Hyperwallet'
88
__license__ = 'MIT'
9-
__version__ = '1.1.4'
9+
__version__ = '1.1.5'
1010
__url__ = 'https://github.com/hyperwallet/python-sdk'
1111
__download_url__ = 'https://pypi.python.org/pypi/hyperwallet-sdk'
1212
__description__ = 'A Python wrapper around the Hyperwallet API'
@@ -21,6 +21,7 @@
2121
PrepaidCard, # noqa
2222
PaperCheck, # noqa
2323
Transfer, # noqa
24+
ClientToken, # noqa
2425
PayPalAccount, # noqa
2526
Payment, # noqa
2627
Balance, # noqa

hyperwallet/api.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
PrepaidCard,
1515
PaperCheck,
1616
Transfer,
17+
ClientToken,
1718
PayPalAccount,
1819
Payment,
1920
Balance,
@@ -1654,6 +1655,32 @@ def listPayPalAccounts(self,
16541655

16551656
'''
16561657
1658+
ClientToken
1659+
1660+
'''
1661+
1662+
def getClientToken(self,
1663+
userToken=None):
1664+
'''
1665+
Get a ClientToken.
1666+
:param userToken:
1667+
A user token. **REQUIRED**
1668+
:returns:
1669+
A ClientToken.
1670+
'''
1671+
1672+
if not userToken:
1673+
raise HyperwalletException('userToken is required')
1674+
1675+
response = self.apiClient.doPost(
1676+
os.path.join('users', userToken, 'client-token'),
1677+
None
1678+
)
1679+
1680+
return ClientToken(response)
1681+
1682+
'''
1683+
16571684
Payments
16581685
https://portal.hyperwallet.com/docs/api/v3/resources/payments
16591686

hyperwallet/models.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,34 @@ def __repr__(self):
125125
)
126126

127127

128+
class ClientToken(HyperwalletModel):
129+
'''
130+
The ClientToken Model.
131+
132+
:param data:
133+
A dictionary containing the attributes for the Client Token.
134+
'''
135+
136+
def __init__(self, data):
137+
'''
138+
Create a new Client Token with the provided attributes.
139+
'''
140+
141+
super(ClientToken, self).__init__(data)
142+
143+
self.defaults = {
144+
'value': None,
145+
}
146+
147+
for (param, default) in self.defaults.items():
148+
setattr(self, param, data.get(param, default))
149+
150+
def __repr__(self):
151+
return "ClientToken({value})".format(
152+
value=self.value
153+
)
154+
155+
128156
class TransferMethod(HyperwalletModel):
129157
'''
130158
The TransferMethod Model.

hyperwallet/tests/test_api.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1366,6 +1366,30 @@ def test_list_paypal_accounts_success(self, mock_get):
13661366

13671367
'''
13681368
1369+
ClientToken
1370+
1371+
'''
1372+
1373+
def test_get_client_token_fail_need_user_token(self):
1374+
1375+
with self.assertRaises(HyperwalletException) as exc:
1376+
self.api.getClientToken()
1377+
1378+
self.assertEqual(exc.exception.message, 'userToken is required')
1379+
1380+
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
1381+
def test_get_client_token_success(self, mock_post):
1382+
1383+
client_token_data = {
1384+
'value': 'test-value'
1385+
}
1386+
mock_post.return_value = client_token_data
1387+
response = self.api.getClientToken('user-token')
1388+
1389+
self.assertTrue(response.value, client_token_data.get('value'))
1390+
1391+
'''
1392+
13691393
Payments
13701394
13711395
'''

hyperwallet/tests/test_models.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
PrepaidCard,
1313
PaperCheck,
1414
Transfer,
15+
ClientToken,
1516
PayPalAccount,
1617
Payment,
1718
Balance,
@@ -73,6 +74,10 @@ def setUp(self):
7374
'createdOn': '2017-01-01'
7475
}
7576

77+
self.client_token_data = {
78+
'value': 'test-client-token'
79+
}
80+
7681
self.transfer_method_data = {
7782
'token': 'trm-12345',
7883
'createdOn': '2017-01-01'
@@ -243,6 +248,23 @@ def test_transfer_model(self):
243248

244249
'''
245250
251+
ClientToken
252+
253+
'''
254+
255+
def test_client_token_model(self):
256+
257+
test_client_token = ClientToken(self.client_token_data)
258+
259+
self.assertEqual(
260+
test_client_token.__repr__(),
261+
'ClientToken({value})'.format(
262+
value=self.client_token_data.get('value')
263+
)
264+
)
265+
266+
'''
267+
246268
PayPal Account
247269
248270
'''

0 commit comments

Comments
 (0)