Skip to content

Commit 2e40100

Browse files
authored
Merge pull request #31 from sypht-team/add_workflow_data_endpoints
Add workflow data endpoints
2 parents b6356e8 + bb59e12 commit 2e40100

File tree

3 files changed

+54
-8
lines changed

3 files changed

+54
-8
lines changed

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
requests==2.26.0
2-
urllib3==1.26.0
2+
urllib3==1.26.5

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from setuptools import find_packages, setup
22

3-
__version__ = "0.5.13"
3+
__version__ = "0.5.14"
44
__pkg_name__ = "sypht"
55

66
setup(
@@ -16,5 +16,5 @@
1616
"Programming Language :: Python :: 3.7",
1717
"Topic :: Scientific/Engineering :: Artificial Intelligence",
1818
],
19-
install_requires=["requests>=2.26.0", "urllib3>=1.26.0"],
19+
install_requires=["requests>=2.26.0", "urllib3>=1.26.5"],
2020
)

sypht/client.py

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)