Skip to content

Commit 84ed672

Browse files
author
mgovindhasamy
committed
added Create User Status Transition
1 parent ea051af commit 84ed672

5 files changed

Lines changed: 135 additions & 4 deletions

File tree

hyperwallet/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
StatusTransition, # noqa
3333
TransferMethodConfiguration, # noqa
3434
Webhook, # noqa
35-
TransferRefunds # naqa
35+
TransferRefunds, # naqa
36+
CreateUserStatusTransition # naqa
3637
)
3738

3839
from .api import Api # noqa

hyperwallet/api.py

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
StatusTransition,
2424
TransferMethodConfiguration,
2525
Webhook,
26-
TransferRefunds
26+
TransferRefunds,
27+
CreateUserStatusTransition
2728
)
2829

2930

@@ -2791,4 +2792,41 @@ def createTransferSpendBackRefund(self,
27912792
params
27922793
)
27932794

2794-
return TransferRefunds(response)
2795+
return TransferRefunds(response)
2796+
2797+
'''
2798+
2799+
Create User Transition
2800+
2801+
'''
2802+
2803+
def createUserStatusTransition(self,
2804+
userToken=None,
2805+
data=None):
2806+
'''
2807+
Create User Transition.
2808+
2809+
:param data:
2810+
A dictionary containing User Create UserToken information. **REQUIRED**
2811+
:param data:
2812+
A dictionary containing User Create Data information. **REQUIRED**
2813+
:returns:
2814+
CreateUserStatusTransition.
2815+
'''
2816+
2817+
if not userToken:
2818+
raise HyperwalletException('userToken is required')
2819+
2820+
if not data:
2821+
raise HyperwalletException('data is required')
2822+
2823+
response = self.apiClient.doPost(
2824+
self.__buildUrl(
2825+
'users',
2826+
userToken,
2827+
'status-transitions'
2828+
),
2829+
data
2830+
)
2831+
2832+
return CreateUserStatusTransition(response)

hyperwallet/models.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -845,4 +845,43 @@ def __repr__(self):
845845
return "TransferRefunds({date}, {token})".format(
846846
date=self.createdOn,
847847
token=self.token
848+
)
849+
'''
850+
851+
Create User Transition
852+
853+
'''
854+
855+
class CreateUserStatusTransition(HyperwalletModel):
856+
'''
857+
The StatusTransition Model.
858+
859+
:param data:
860+
A dictionary containing the attributes for the Status Transition.
861+
'''
862+
863+
def __init__(self, data):
864+
'''
865+
Create a new Status Transition with the provided attributes.
866+
'''
867+
868+
super(CreateUserStatusTransition, self).__init__(data)
869+
870+
self.defaults = {
871+
'createdOn': None,
872+
'fromStatus': None,
873+
'notes': None,
874+
'statusCode': None,
875+
'token': None,
876+
'toStatus': None,
877+
'transition': None
878+
}
879+
880+
for (param, default) in self.defaults.items():
881+
setattr(self, param, data.get(param, default))
882+
883+
def __repr__(self):
884+
return "CreateUserStatusTransition({date}, {token})".format(
885+
date=self.createdOn,
886+
token=self.token
848887
)

hyperwallet/tests/test_api.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2267,5 +2267,34 @@ def test_create_transfer_spend_back_refunds_success(self, mock_get):
22672267

22682268
self.assertTrue(response.token, self.data.get('token'))
22692269

2270+
'''
2271+
2272+
Create User Status Transition
2273+
2274+
'''
2275+
2276+
def test_create_user_status_transition_user_token(self):
2277+
2278+
with self.assertRaises(HyperwalletException) as exc:
2279+
self.api.createUserStatusTransition()
2280+
2281+
self.assertEqual(exc.exception.message, 'userToken is required')
2282+
2283+
def test_create_user_status_transition_data(self):
2284+
2285+
with self.assertRaises(HyperwalletException) as exc:
2286+
self.api.createUserStatusTransition('token')
2287+
2288+
self.assertEqual(exc.exception.message, 'data is required')
2289+
2290+
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
2291+
def test_create_user_status_transition_success(self, mock_get):
2292+
2293+
mock_get.return_value = self.data
2294+
response = self.api.createUserStatusTransition('token', 'token')
2295+
2296+
self.assertTrue(response.token, self.data.get('token'))
2297+
2298+
22702299
if __name__ == '__main__':
22712300
unittest.main()

hyperwallet/tests/test_models.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
StatusTransition,
2424
TransferMethodConfiguration,
2525
Webhook,
26-
TransferRefunds
26+
TransferRefunds,
27+
CreateUserStatusTransition
2728
)
2829

2930

@@ -554,5 +555,28 @@ def test_transfer_refunds(self):
554555
)
555556
)
556557

558+
559+
'''
560+
561+
Create User Status Transition
562+
563+
'''
564+
565+
def test_create_user_status_transition(self):
566+
567+
status_transfer_refunds_data = {
568+
"transition" : "LOCKED"
569+
}
570+
571+
status_create_user_status_transition = CreateUserStatusTransition(status_transfer_refunds_data)
572+
573+
self.assertEqual(
574+
status_create_user_status_transition.__repr__(),
575+
'CreateUserStatusTransition({date}, {token})'.format(
576+
date=status_transfer_refunds_data.get('createdOn'),
577+
token=status_transfer_refunds_data.get('token')
578+
)
579+
)
580+
557581
if __name__ == '__main__':
558582
unittest.main()

0 commit comments

Comments
 (0)