@@ -43,8 +43,74 @@ def _handleBulkResponse(self, response, bulkDetails):
43
43
return {"error" : False , "status" : responseJson ["status" ], "message" :responseJson ["message" ], "id" : responseJson ["data" ].get ("id" , None ), "data" : responseJson ["data" ]}
44
44
else :
45
45
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
+
46
113
47
-
48
114
def initiate (self , transferDetails ):
49
115
50
116
@@ -74,12 +140,12 @@ def initiate(self, transferDetails):
74
140
#feature logging
75
141
tracking_endpoint = self ._trackingMap
76
142
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 }
78
144
tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
79
145
else :
80
146
tracking_endpoint = self ._trackingMap
81
147
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 }
83
149
tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
84
150
return self ._handleInitiateResponse (response , transferDetails )
85
151
@@ -89,12 +155,7 @@ def bulk(self, bulkDetails):
89
155
90
156
# feature logic
91
157
bulkDetails = copy .copy (bulkDetails )
92
-
93
- # Collating request headers
94
- headers = {
95
- 'content-type' : 'application/json' ,
96
- }
97
-
158
+
98
159
bulkDetails .update ({"seckey" : self ._getSecretKey ()})
99
160
requiredParameters = ["title" , "bulk_data" ]
100
161
checkIfParametersAreComplete (requiredParameters , bulkDetails )
@@ -111,50 +172,16 @@ def bulk(self, bulkDetails):
111
172
#feature logging
112
173
tracking_endpoint = self ._trackingMap
113
174
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 }
115
176
tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
116
177
else :
117
178
tracking_endpoint = self ._trackingMap
118
179
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 }
120
181
tracking_response = requests .post (tracking_endpoint , data = json .dumps (tracking_payload ))
121
182
122
183
return self ._handleBulkResponse (response , bulkDetails )
123
184
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
-
158
185
# Not elegant but supports python 2 and 3
159
186
def fetch (self , reference = None ):
160
187
@@ -190,6 +217,51 @@ def getBalance(self, currency):
190
217
}
191
218
192
219
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)
193
265
194
266
195
267
0 commit comments