Skip to content

Commit 19bb05f

Browse files
Merge pull request #37 from hyperwallet/feature/HW-67903-V3-Python-SDK-for-User-Status-Transitions
added Create User Status Transition
2 parents ea051af + 42649ce commit 19bb05f

3 files changed

Lines changed: 221 additions & 2 deletions

File tree

hyperwallet/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
StatusTransition, # noqa
3333
TransferMethodConfiguration, # noqa
3434
Webhook, # noqa
35-
TransferRefunds # naqa
35+
TransferRefunds # naqa
3636
)
3737

3838
from .api import Api # noqa

hyperwallet/api.py

Lines changed: 143 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2791,4 +2791,146 @@ def createTransferSpendBackRefund(self,
27912791
params
27922792
)
27932793

2794-
return TransferRefunds(response)
2794+
return TransferRefunds(response)
2795+
2796+
'''
2797+
2798+
Create User Status Transition
2799+
2800+
'''
2801+
2802+
def createUserStatusTransition(self,
2803+
userToken=None,
2804+
data=None):
2805+
'''
2806+
Create User Status Transition.
2807+
:param userToken:
2808+
A token identifying the User Create UserToken. **REQUIRED**
2809+
:param data:
2810+
A dictionary containing User Status Create Data information. **REQUIRED**
2811+
:returns:
2812+
StatusTransition.
2813+
'''
2814+
if not userToken:
2815+
raise HyperwalletException('userToken is required')
2816+
if not data:
2817+
raise HyperwalletException('data is required')
2818+
response = self.apiClient.doPost(
2819+
self.__buildUrl(
2820+
'users',
2821+
userToken,
2822+
'status-transitions'
2823+
),
2824+
data
2825+
)
2826+
2827+
return StatusTransition(response)
2828+
2829+
def activateUser(self,
2830+
userToken=None):
2831+
2832+
'''
2833+
Create User Activate Status Transition.
2834+
:param userToken:
2835+
A token identifying the User Create UserToken. **REQUIRED**
2836+
:returns:
2837+
StatusTransition.
2838+
'''
2839+
if not userToken:
2840+
raise HyperwalletException('userToken is required')
2841+
2842+
data = {
2843+
'transition': 'ACTIVATED'
2844+
}
2845+
2846+
return self.createUserStatusTransition(
2847+
userToken,
2848+
data
2849+
)
2850+
2851+
def deactivateUser(self,
2852+
userToken=None):
2853+
2854+
'''
2855+
Create User DeActivate Status Transition.
2856+
:param userToken:
2857+
A token identifying the User Create UserToken. **REQUIRED**
2858+
:returns:
2859+
StatusTransition.
2860+
'''
2861+
if not userToken:
2862+
raise HyperwalletException('userToken is required')
2863+
2864+
data = {
2865+
'transition': 'DE_ACTIVATED'
2866+
}
2867+
2868+
return self.createUserStatusTransition(
2869+
userToken,
2870+
data
2871+
)
2872+
2873+
def preactivateUser(self,
2874+
userToken=None):
2875+
2876+
'''
2877+
Create User Pre Activate Status Transition.
2878+
:param userToken:
2879+
A token identifying the User Create UserToken. **REQUIRED**
2880+
:returns:
2881+
StatusTransition.
2882+
'''
2883+
if not userToken:
2884+
raise HyperwalletException('userToken is required')
2885+
data = {
2886+
'transition': 'PRE-ACTIVATED'
2887+
}
2888+
2889+
return self.createUserStatusTransition(
2890+
userToken,
2891+
data
2892+
)
2893+
2894+
def freezeUser(self,
2895+
userToken=None):
2896+
2897+
'''
2898+
Create User Freeze Status Transition.
2899+
:param userToken:
2900+
A token identifying the User Create UserToken. **REQUIRED**
2901+
:returns:
2902+
StatusTransition.
2903+
'''
2904+
if not userToken:
2905+
raise HyperwalletException('userToken is required')
2906+
2907+
data = {
2908+
'transition': 'FROZEN'
2909+
}
2910+
2911+
return self.createUserStatusTransition(
2912+
userToken,
2913+
data
2914+
)
2915+
2916+
def lockUser(self,
2917+
userToken=None):
2918+
2919+
'''
2920+
Create User Lock Status Transition.
2921+
:param userToken:
2922+
A token identifying the User Create UserToken. **REQUIRED**
2923+
:returns:
2924+
StatusTransition.
2925+
'''
2926+
if not userToken:
2927+
raise HyperwalletException('userToken is required')
2928+
2929+
data = {
2930+
'transition': 'LOCKED'
2931+
}
2932+
2933+
return self.createUserStatusTransition(
2934+
userToken,
2935+
data
2936+
)

hyperwallet/tests/test_api.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2267,5 +2267,82 @@ 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+
with self.assertRaises(HyperwalletException) as exc:
2278+
self.api.createUserStatusTransition()
2279+
self.assertEqual(exc.exception.message, 'userToken is required')
2280+
2281+
def test_create_user_status_transition_data(self):
2282+
with self.assertRaises(HyperwalletException) as exc:
2283+
self.api.createUserStatusTransition('token')
2284+
self.assertEqual(exc.exception.message, 'data is required')
2285+
2286+
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
2287+
def test_create_user_status_transition_success(self, mock_get):
2288+
mock_get.return_value = self.data
2289+
response = self.api.createUserStatusTransition('token', 'token')
2290+
self.assertTrue(response.token, self.data.get('token'))
2291+
2292+
def test_create_user_lockUser_status_transition_user_token(self):
2293+
with self.assertRaises(HyperwalletException) as exc:
2294+
self.api.lockUser()
2295+
self.assertEqual(exc.exception.message, 'userToken is required')
2296+
2297+
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
2298+
def test_create_user_lockUser_status_transition_success(self, mock_get):
2299+
mock_get.return_value = self.data
2300+
response = self.api.lockUser('token')
2301+
self.assertTrue(response.token, self.data.get('token'))
2302+
2303+
def test_create_user_freezeUser_status_transition_user_token(self):
2304+
with self.assertRaises(HyperwalletException) as exc:
2305+
self.api.freezeUser()
2306+
self.assertEqual(exc.exception.message, 'userToken is required')
2307+
2308+
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
2309+
def test_create_user_freezeUser_status_transition_success(self, mock_get):
2310+
mock_get.return_value = self.data
2311+
response = self.api.freezeUser('token')
2312+
self.assertTrue(response.token, self.data.get('token'))
2313+
2314+
def test_create_user_preactivate_status_transition_user_token(self):
2315+
with self.assertRaises(HyperwalletException) as exc:
2316+
self.api.preactivateUser()
2317+
self.assertEqual(exc.exception.message, 'userToken is required')
2318+
2319+
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
2320+
def test_create_user_preactivate_status_transition_success(self, mock_get):
2321+
mock_get.return_value = self.data
2322+
response = self.api.preactivateUser('token')
2323+
self.assertTrue(response.token, self.data.get('token'))
2324+
2325+
def test_create_user_deactivate_status_transition_user_token(self):
2326+
with self.assertRaises(HyperwalletException) as exc:
2327+
self.api.deactivateUser()
2328+
self.assertEqual(exc.exception.message, 'userToken is required')
2329+
2330+
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
2331+
def test_create_user_deactivate_status_transition_success(self, mock_get):
2332+
mock_get.return_value = self.data
2333+
response = self.api.deactivateUser('token')
2334+
self.assertTrue(response.token, self.data.get('token'))
2335+
2336+
def test_create_user_activate_status_transition_user_token(self):
2337+
with self.assertRaises(HyperwalletException) as exc:
2338+
self.api.activateUser()
2339+
self.assertEqual(exc.exception.message, 'userToken is required')
2340+
2341+
@mock.patch('hyperwallet.utils.ApiClient._makeRequest')
2342+
def test_create_user_activate_status_transition_success(self, mock_get):
2343+
mock_get.return_value = self.data
2344+
response = self.api.activateUser('token')
2345+
self.assertTrue(response.token, self.data.get('token'))
2346+
22702347
if __name__ == '__main__':
22712348
unittest.main()

0 commit comments

Comments
 (0)