From 514475f5efee1aba2866eca85a9bf5a1604e5556 Mon Sep 17 00:00:00 2001 From: StevanFreeborn Date: Thu, 14 Apr 2022 21:18:57 -0500 Subject: [PATCH] first commit --- OnspringClient.py | 91 ++++++++++++++++++++++++++ UrlHelper.py | 11 ++++ __pycache__/UrlHelper.cpython-310.pyc | Bin 0 -> 649 bytes 3 files changed, 102 insertions(+) create mode 100644 OnspringClient.py create mode 100644 UrlHelper.py create mode 100644 __pycache__/UrlHelper.cpython-310.pyc diff --git a/OnspringClient.py b/OnspringClient.py new file mode 100644 index 0000000..b38d77a --- /dev/null +++ b/OnspringClient.py @@ -0,0 +1,91 @@ +import requests +import json +from UrlHelper import * + +class OnspringClient: + def __init__(self, url, key): + self.baseUrl = url + self.headers = { + 'x-apikey': key, + 'x-api-version': '2' + } + + # verify connectivity + + def canConnect(self): + + endpoint = GetPingEndpoint(self.baseUrl) + + response = requests.request('GET', endpoint, headers=self.headers) + + return response.status_code == 200 + + # apps + + def GetApps(self, pageNumber=1, pageSize=50): + + endpoint = GetAppsEndpoint(self.baseUrl) + + params={ + 'PageNumber': pageNumber, + 'PageSize': pageSize + } + + response = requests.request('GET', endpoint, headers=self.headers, params=params) + + if(response.status_code == 400): + return {'Message': 'Invalid paging information.'} + + if(response.status_code == 401): + return {'Message': 'Unauthorized request.'} + + return response.json() + + def GetAppById(self, appId): + + endpoint = GetAppByIdEndpoint(self.baseUrl, appId) + + response = requests.request('GET', endpoint, headers=self.headers) + + if(response.status_code == 401): + return {'Message': 'Unauthorized request.'} + + if(response.status_code == 403): + return {'Message': 'Client does not have read access to the app.'} + + if(response.status_code == 404): + return {'Message': 'App could not be found.'} + + return response.json() + + def GetAppByIds(self, appIds): + + endpoint = GetAppByIdsEndpoint(self.baseUrl) + + self.headers["Content-Type"] = "application/json" + + if(not isinstance(appIds, (list, tuple))): + return {'Message': 'App ids should be of type list or tuple.'} + + data = json.dumps(appIds) + + response = requests.request("POST", endpoint, headers=self.headers, data=data) + + if(response.status_code == 401): + return {'Message': 'Unauthorized request.'} + + if(response.status_code == 403): + return {'Message': 'Client does not have read access to the app.'} + + return response.json() + + + +url = 'https://api.onspring.com' +apiKey = '61642d8c686f9e8747e42af8/52cae9a9-4c49-48b6-a3fe-10a48d46ac69' + +onspringClient = OnspringClient(url,apiKey) + +data = (8,) + +print(onspringClient.GetAppByIds(data)) \ No newline at end of file diff --git a/UrlHelper.py b/UrlHelper.py new file mode 100644 index 0000000..0cc8b18 --- /dev/null +++ b/UrlHelper.py @@ -0,0 +1,11 @@ +def GetPingEndpoint(baseUrl): + return f'{baseUrl}/Ping' + +def GetAppsEndpoint(baseUrl): + return f'{baseUrl}/Apps' + +def GetAppByIdEndpoint(baseUrl, appId): + return f'{baseUrl}/Apps/id/{appId}' + +def GetAppByIdsEndpoint(baseUrl): + return f'{baseUrl}/Apps/batch-get' \ No newline at end of file diff --git a/__pycache__/UrlHelper.cpython-310.pyc b/__pycache__/UrlHelper.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5dfcd4526b35490b29595c98a809a27fcbd0ab29 GIT binary patch literal 649 zcmah_O-lnY5KT7Sc3W)=di3JKOAmEVUPQzXM0+WPB8co|yNT^e-Gn3}D?R!zN`FBA zQm_7m-aI+8p&tmvfy_+84N0g9nyljUDmn%5t1QI8levxOwJ!~aqrz;ZBtlXv)v9f=L{G^j?4|KG3a7zeRUM(v@n zyEi@D(5<&c4!7+dblp~|aJ5*y;Me%Pr5mL=--3%b$=}D~5{)+KRX_q3uzmIm%`100 literal 0 HcmV?d00001