finished implementing methods;

This commit is contained in:
StevanFreeborn
2022-04-21 16:22:44 -05:00
parent a332b41585
commit a0de5e6fba
5 changed files with 611 additions and 228 deletions
+207 -8
View File
@@ -235,6 +235,25 @@ class OnspringClient:
jsonResponse = dict(response.json())
values = jsonResponse.get('values')
if values != None:
listValues = []
for value in values:
value = dict(value)
value = ListValue(
value.get('id'),
value.get('name'),
value.get('sortOrder'),
value.get('numericValue'),
value.get('color'))
listValues.append(value)
field = Field(
jsonResponse.get('id'),
jsonResponse.get('appId'),
@@ -242,7 +261,11 @@ class OnspringClient:
jsonResponse.get('type'),
jsonResponse.get('status'),
jsonResponse.get('isRequired'),
jsonResponse.get('isUnique'))
jsonResponse.get('isUnique'),
jsonResponse.get("listId"),
listValues,
jsonResponse.get('multiplicity'),
jsonResponse.get('outputType'))
data = GetFieldByIdResponse(field)
@@ -1193,22 +1216,198 @@ class OnspringClient:
response.status_code,
raw=response)
def DeleteRecordsByIds(self):
def DeleteRecordsByIds(self, deleteBatchRecordsRequest: DeleteBatchRecordsRequest):
endpoint = DeleteRecordsByIds(self.baseUrl)
return
self.headers['Content-Type'] = 'application/json'
requestData = json.dumps(deleteBatchRecordsRequest.__dict__)
response = requests.request(
'POST',
endpoint,
headers=self.headers,
data=requestData)
if response.status_code == 400:
return ApiResponse(
response.status_code,
message='Invalid request provided',
raw=response)
if response.status_code == 401:
return ApiResponse(
response.status_code,
message='Unauthorized request',
raw=response)
if response.status_code == 403:
jsonResponse = dict(response.json())
return ApiResponse(
response.status_code,
message=jsonResponse.get('message'),
raw=response)
if response.status_code == 404:
return ApiResponse(
response.status_code,
message='Records could not be found',
raw=response)
if response.status_code == 204:
return ApiResponse(
response.status_code,
message='Record(s) deleted successfully',
raw=response)
return ApiResponse(
response.status_code,
raw=response)
# report methods
def GetReportById(self, reportId: int):
def GetReportById(self, getReportByIdRequest: GetReportByIdRequest):
endpoint = GetReportByIdEndpoint(self.baseUrl, reportId)
endpoint = GetReportByIdEndpoint(self.baseUrl, getReportByIdRequest.reportId)
return
params = getReportByIdRequest.__dict__
del params['reportId']
def GetReportsByAppId(self, appId: int):
response = requests.request(
'GET',
endpoint,
headers=self.headers,
params=params)
if response.status_code == 400:
return ApiResponse(
response.status_code,
message='Invalid request based on underlying data',
raw=response)
if response.status_code == 401:
return ApiResponse(
response.status_code,
message='Unauthorized request',
raw=response)
if response.status_code == 403:
jsonResponse = dict(response.json())
return ApiResponse(
response.status_code,
message=jsonResponse.get('message'),
raw=response)
if response.status_code == 404:
return ApiResponse(
response.status_code,
message='Report could not be found',
raw=response)
if response.status_code == 200:
jsonResponse = dict(response.json())
rows = []
for row in jsonResponse.get('rows'):
row = dict(row)
row = Row(
row.get('recordId'),
row.get('cells'))
rows.append(row)
data = GetReportByIdResponse(
jsonResponse.get('columns'),
rows)
return ApiResponse(
response.status_code,
data=data,
raw=response)
return ApiResponse(
response.status_code,
raw=response)
def GetReportsByAppId(self, appId: int, pagingRequest: PagingRequest=PagingRequest(1,50)):
endpoint = GetReportsByAppIdEndpoint(self.baseUrl, appId)
return
params = pagingRequest.__dict__
response = requests.request(
'GET',
endpoint,
headers=self.headers,
params=params)
if response.status_code == 400:
return ApiResponse(
response.status_code,
message='Client does not have read access to the app.',
raw=response)
if response.status_code == 401:
return ApiResponse(
response.status_code,
message='Unauthorized request',
raw=response)
if response.status_code == 403:
jsonResponse = dict(response.json())
return ApiResponse(
response.status_code,
message=jsonResponse.get('message'),
raw=response)
if response.status_code == 200:
responseJson = dict(response.json())
reports = []
for item in responseJson.get('items'):
item = dict(item)
report = Report(
item.get('appId'),
item.get('id'),
item.get('name'),
item.get('description'))
reports.append(report)
data = GetReportsByAppIdResponse(
responseJson.get('pageNumber'),
responseJson.get('pageSize'),
responseJson.get('totalPages'),
responseJson.get('totalRecords'),
reports)
return ApiResponse(
response.status_code,
data,
raw=response)
return ApiResponse(
response.status_code,
raw=response)