@@ -114,7 +114,10 @@ def _authenticate_v1(self, endpoint, client_id, client_secret, audience):
114114 @staticmethod
115115 def _parse_response (response ):
116116 if 200 <= response .status_code < 300 :
117- return response .json ()
117+ try :
118+ return response .json ()
119+ except json .decoder .JSONDecodeError :
120+ return response .text
118121 else :
119122 raise Exception (
120123 "Request failed with status code ({}): {}" .format (
@@ -237,19 +240,26 @@ def get_validation_rules(self, company_id=None, rules_id=None, endpoint=None):
237240 company_id = company_id or self .company_id
238241 endpoint = urljoin (
239242 endpoint or self .base_endpoint ,
240- f"workflows/rules/ { company_id } /{ rules_id } " ,
243+ f"workflows/{ company_id } /rules /{ rules_id } " ,
241244 )
242245 headers = self ._get_headers ()
243246 headers ["Accept" ] = "application/json"
244247 headers ["Content-Type" ] = "application/json"
245248 return self ._parse_response (self .requests .get (endpoint , headers = headers ))
246249
247- def set_validation_rules (self , validation_rules = None , schema = True , company_id = None , rules_id = None , endpoint = None ):
250+ def set_validation_rules (
251+ self ,
252+ validation_rules = None ,
253+ schema = True ,
254+ company_id = None ,
255+ rules_id = None ,
256+ endpoint = None ,
257+ ):
248258 data = {"data" : validation_rules , "schema" : schema }
249259 company_id = company_id or self .company_id
250260 endpoint = urljoin (
251261 endpoint or self .base_endpoint ,
252- f"workflows/rules/ { company_id } /{ rules_id } " ,
262+ f"workflows/{ company_id } /rules /{ rules_id } " ,
253263 )
254264 headers = self ._get_headers ()
255265 headers ["Accept" ] = "application/json"
@@ -262,7 +272,43 @@ def delete_validation_rules(self, company_id=None, rules_id=None, endpoint=None)
262272 company_id = company_id or self .company_id
263273 endpoint = urljoin (
264274 endpoint or self .base_endpoint ,
265- f"workflows/rules/{ company_id } /{ rules_id } " ,
275+ f"workflows/{ company_id } /rules/{ rules_id } " ,
276+ )
277+ headers = self ._get_headers ()
278+ headers ["Accept" ] = "application/json"
279+ headers ["Content-Type" ] = "application/json"
280+ return self ._parse_response (self .requests .delete (endpoint , headers = headers ))
281+
282+ def get_workflow_data (self , company_id = None , data_key = None , endpoint = None ):
283+ company_id = company_id or self .company_id
284+ endpoint = urljoin (
285+ endpoint or self .base_endpoint ,
286+ f"workflows/{ company_id } /data/{ data_key } " ,
287+ )
288+ headers = self ._get_headers ()
289+ headers ["Accept" ] = "application/json"
290+ headers ["Content-Type" ] = "application/json"
291+ return self ._parse_response (self .requests .get (endpoint , headers = headers ))
292+
293+ def put_workflow_data (self , data , data_key , company_id = None , endpoint = None ):
294+ data = {"data" : data }
295+ company_id = company_id or self .company_id
296+ endpoint = urljoin (
297+ endpoint or self .base_endpoint ,
298+ f"workflows/{ company_id } /data/{ data_key } " ,
299+ )
300+ headers = self ._get_headers ()
301+ headers ["Accept" ] = "application/json"
302+ headers ["Content-Type" ] = "application/json"
303+ return self ._parse_response (
304+ self .requests .put (endpoint , data = json .dumps (data ), headers = headers )
305+ )
306+
307+ def delete_workflow_data (self , rules_id = None , company_id = None , endpoint = None ):
308+ company_id = company_id or self .company_id
309+ endpoint = urljoin (
310+ endpoint or self .base_endpoint ,
311+ f"workflows/{ company_id } /rules/{ rules_id } " ,
266312 )
267313 headers = self ._get_headers ()
268314 headers ["Accept" ] = "application/json"
0 commit comments