@@ -43,8 +43,74 @@ def _handleBulkResponse(self, response, bulkDetails):
4343 return {"error" : False , "status" : responseJson ["status" ], "message" :responseJson ["message" ], "id" : responseJson ["data" ].get ("id" , None ), "data" : responseJson ["data" ]}
4444 else :
4545 raise InitiateTransferError ({"error" : True , "data" : responseJson ["data" ]})
46+
47+ # This makes and handles all requests pertaining to the status of your transfer or account
48+ def _handleTransferStatusRequests (self , feature_name , endpoint , isPostRequest = False , data = None ):
49+
50+ # Request headers
51+ headers = {
52+ 'content-type' : 'application/json' ,
53+ }
54+
55+ # Checks if it is a post request
56+ if isPostRequest :
57+ response = requests .post (endpoint , headers = headers , data = json .dumps (data ))
58+ else :
59+ response = requests .get (endpoint , headers = headers )
60+
61+ # Checks if it can be parsed to json
62+ try :
63+ responseJson = response .json ()
64+ except :
65+ raise ServerError ({"error" : True , "errMsg" : response .text })
66+
67+ # Checks if it returns a 2xx code
68+ if response .ok :
69+ tracking_endpoint = self ._trackingMap
70+ responseTime = response .elapsed .total_seconds ()
71+ tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.10" , "title" : feature_name ,"message" : responseTime }
72+ tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
73+ return {"error" : False , "returnedData" : responseJson }
74+ else :
75+ tracking_endpoint = self ._trackingMap
76+ responseTime = response .elapsed .total_seconds ()
77+ tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.10" , "title" : feature_name + "-error" ,"message" : responseTime }
78+ raise TransferFetchError ({"error" : True , "returnedData" : responseJson })
79+
80+ def _handleTransferRetriesRequests (self , feature_name , endpoint , isPostRequest = False , data = None ):
81+
82+ # Request headers
83+ headers = {
84+ 'content-type' : 'application/json' ,
85+ }
86+
87+ # Checks if it is a post request
88+ if isPostRequest :
89+ response = requests .post (endpoint , headers = headers , data = json .dumps (data ))
90+ else :
91+ response = requests .get (endpoint , headers = headers )
92+
93+ # Checks if it can be parsed to json
94+ try :
95+ responseJson = response .json ()
96+ errorMessage = responseJson ["message" ]
97+ except :
98+ raise ServerError ({"error" : True , "errMsg" : response .text })
99+
100+ # Checks if it returns a 2xx code
101+ if response .ok :
102+ tracking_endpoint = self ._trackingMap
103+ responseTime = response .elapsed .total_seconds ()
104+ tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.10" , "title" : feature_name ,"message" : responseTime }
105+ tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
106+ return {"error" : False , "returnedData" : responseJson }
107+ else :
108+ tracking_endpoint = self ._trackingMap
109+ responseTime = response .elapsed .total_seconds ()
110+ tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.10" , "title" : feature_name + "-error" ,"message" : responseTime }
111+ return {"error" : True , "returnedData" : errorMessage }
112+
46113
47-
48114 def initiate (self , transferDetails ):
49115
50116
@@ -74,12 +140,12 @@ def initiate(self, transferDetails):
74140 #feature logging
75141 tracking_endpoint = self ._trackingMap
76142 responseTime = response .elapsed .total_seconds ()
77- tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.9 " , "title" : "Initiate-Transfer-error" ,"message" : responseTime }
143+ tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.10 " , "title" : "Initiate-Transfer-error" ,"message" : responseTime }
78144 tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
79145 else :
80146 tracking_endpoint = self ._trackingMap
81147 responseTime = response .elapsed .total_seconds ()
82- tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.9 " , "title" : "Initiate-Transfer" ,"message" : responseTime }
148+ tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.10 " , "title" : "Initiate-Transfer" ,"message" : responseTime }
83149 tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
84150 return self ._handleInitiateResponse (response , transferDetails )
85151
@@ -89,12 +155,7 @@ def bulk(self, bulkDetails):
89155
90156 # feature logic
91157 bulkDetails = copy .copy (bulkDetails )
92-
93- # Collating request headers
94- headers = {
95- 'content-type' : 'application/json' ,
96- }
97-
158+
98159 bulkDetails .update ({"seckey" : self ._getSecretKey ()})
99160 requiredParameters = ["title" , "bulk_data" ]
100161 checkIfParametersAreComplete (requiredParameters , bulkDetails )
@@ -111,50 +172,16 @@ def bulk(self, bulkDetails):
111172 #feature logging
112173 tracking_endpoint = self ._trackingMap
113174 responseTime = response .elapsed .total_seconds ()
114- tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.9 " , "title" : "Initiate-Bulk-error" ,"message" : responseTime }
175+ tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.10 " , "title" : "Initiate-Bulk-error" ,"message" : responseTime }
115176 tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
116177 else :
117178 tracking_endpoint = self ._trackingMap
118179 responseTime = response .elapsed .total_seconds ()
119- tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.9 " , "title" : "Initiate-Bulk" ,"message" : responseTime }
180+ tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.10 " , "title" : "Initiate-Bulk" ,"message" : responseTime }
120181 tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
121182
122183 return self ._handleBulkResponse (response , bulkDetails )
123184
124-
125- # This makes and handles all requests pertaining to the status of your transfer or account
126- def _handleTransferStatusRequests (self , endpoint , feature_name , isPostRequest = False , data = None ):
127-
128- # Request headers
129- headers = {
130- 'content-type' : 'application/json' ,
131- }
132-
133- # Checks if it is a post request
134- if isPostRequest :
135- response = requests .post (endpoint , headers = headers , data = json .dumps (data ))
136- else :
137- response = requests .get (endpoint , headers = headers )
138-
139- # Checks if it can be parsed to json
140- try :
141- responseJson = response .json ()
142- except :
143- raise ServerError ({"error" : True , "errMsg" : response .text })
144-
145- # Checks if it returns a 2xx code
146- if response .ok :
147- tracking_endpoint = self ._trackingMap
148- responseTime = response .elapsed .total_seconds ()
149- tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.9" , "title" : feature_name ,"message" : responseTime }
150- tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
151- return {"error" : False , "returnedData" : responseJson }
152- else :
153- tracking_endpoint = self ._trackingMap
154- responseTime = response .elapsed .total_seconds ()
155- tracking_payload = {"publicKey" : self ._getPublicKey (),"language" : "Python v2" , "version" : "1.2.9" , "title" : feature_name + "-error" ,"message" : responseTime }
156- raise TransferFetchError ({"error" : True , "returnedData" : responseJson })
157-
158185 # Not elegant but supports python 2 and 3
159186 def fetch (self , reference = None ):
160187
@@ -190,6 +217,51 @@ def getBalance(self, currency):
190217 }
191218
192219 return self ._handleTransferStatusRequests (label , endpoint , data = data , isPostRequest = True )
220+
221+ def retryTransfer (self , transfer_id ):
222+
223+ #feature logic
224+ label = "retry_failed_transfer"
225+ endpoint = self ._baseUrl + self ._endpointMap ["transfer" ]["retry" ]
226+ data = {
227+ "seckey" : self ._getSecretKey (),
228+ "id" : transfer_id
229+ }
230+ return self ._handleTransferRetriesRequests (label , endpoint , data = data , isPostRequest = True )
231+
232+ def fetchRetries (self , transfer_id ):
233+ label = "fetch_transfer_retries"
234+ endpoint = self ._baseUrl + self ._endpointMap ["transfer" ]["fetch" ] + "/" + str (transfer_id ) + "/retries?seckey=" + self ._getSecretKey ()
235+ return self ._handleTransferRetriesRequests (label , endpoint )
236+
237+ # def walletTransfer(self, transferDetails):
238+ # data = {
239+ # "seckey": self._getSecretKey(),
240+ # "currency": transferDetails["currency"],
241+ # "amount": transferDetails["amount"],
242+ # "merchant_id": transferDetails["merchant_id"]
243+ # }
244+
245+ # headers = {
246+ # 'content-type': 'application/json',
247+ # }
248+
249+
250+ # endpoint = self._baseUrl + self._endpointMap["transfer"]["inter_wallet"]
251+ # response = requests.post(endpoint, headers=headers, data=json.dumps(data))
252+
253+ # if response.ok == False:
254+ # #feature logging
255+ # tracking_endpoint = self._trackingMap
256+ # responseTime = response.elapsed.total_seconds()
257+ # tracking_payload = {"publicKey": self._getPublicKey(),"language": "Python v2", "version": "1.2.10", "title": "interwallet_transfers-error","message": responseTime}
258+ # tracking_response = requests.post(tracking_endpoint, data=json.dumps(tracking_payload))
259+ # else:
260+ # tracking_endpoint = self._trackingMap
261+ # responseTime = response.elapsed.total_seconds()
262+ # tracking_payload = {"publicKey": self._getPublicKey(),"language": "Python v2", "version": "1.2.10", "title": "interwallet_transfers","message": responseTime}
263+ # tracking_response = requests.post(tracking_endpoint, data=json.dumps(tracking_payload))
264+ # return self._handleInitiateInterWalletResponse(response, data)
193265
194266
195267
0 commit comments