More work;
This commit is contained in:
@@ -0,0 +1,81 @@
|
|||||||
|
import uuid
|
||||||
|
|
||||||
|
# connectivity endpoints
|
||||||
|
|
||||||
|
def GetPingEndpoint(baseUrl: str):
|
||||||
|
return f'{baseUrl}/Ping'
|
||||||
|
|
||||||
|
# app endpoints
|
||||||
|
|
||||||
|
def GetAppsEndpoint(baseUrl: str):
|
||||||
|
return f'{baseUrl}/Apps'
|
||||||
|
|
||||||
|
def GetAppByIdEndpoint(baseUrl: str, appId: int):
|
||||||
|
return f'{baseUrl}/Apps/id/{appId}'
|
||||||
|
|
||||||
|
def GetAppByIdsEndpoint(baseUrl: str):
|
||||||
|
return f'{baseUrl}/Apps/batch-get'
|
||||||
|
|
||||||
|
# field endpoints
|
||||||
|
|
||||||
|
def GetFieldByIdEndpoint(baseUrl: str, fieldId: int):
|
||||||
|
return f'{baseUrl}/Fields/id/{fieldId}'
|
||||||
|
|
||||||
|
def GetFieldsByIdsEndpoint(baseUrl: str):
|
||||||
|
return f'{baseUrl}/Fields/batch-get'
|
||||||
|
|
||||||
|
def GetFieldsByAppIdEndpoint(baseUrl: str, appId: int):
|
||||||
|
return f'{baseUrl}/Fields/appId/{appId}'
|
||||||
|
|
||||||
|
# file endpoints
|
||||||
|
|
||||||
|
def GetFileInfoByIdEndpoint(baseUrl: str, recordId: int, fieldId: int, fileId: int):
|
||||||
|
return f'{baseUrl}/Files/recordId/{recordId}/fieldId/{fieldId}/fileId/{fileId}'
|
||||||
|
|
||||||
|
def DeleteFileByIdEndpoint(baseUrl: str, recordId: int, fieldId: int, fileId: int):
|
||||||
|
return f'{baseUrl}/Files/recordId/{recordId}/fieldId/{fieldId}/fileId/{fileId}'
|
||||||
|
|
||||||
|
def GetFileByIdEndpoint(baseUrl: str, recordId: int, fieldId: int, fileId: int):
|
||||||
|
return f'{baseUrl}/Files/recordId/{recordId}/fieldId/{fieldId}/fileId/{fileId}/file'
|
||||||
|
|
||||||
|
def SaveFileEndpoint(baseUrl: str):
|
||||||
|
return f'{baseUrl}/Files'
|
||||||
|
|
||||||
|
# list endpoints
|
||||||
|
|
||||||
|
def AddOrUpdateListItemEndpoint(baseUrl, listId: int):
|
||||||
|
return f'{baseUrl}/Lists/id/{listId}/items'
|
||||||
|
|
||||||
|
def DeleteListItemEndpoint(baseUrl: str, listId: int, itemId: uuid):
|
||||||
|
return f'{baseUrl}/Lists/id/{listId}/itemId/{itemId}'
|
||||||
|
|
||||||
|
# record endpoints
|
||||||
|
|
||||||
|
def GetRecordsByAppIdEndpoint(baseUrl, appId: int):
|
||||||
|
return f'{baseUrl}/Records/appId/{appId}'
|
||||||
|
|
||||||
|
def GetRecordByIdEndpoint(baseUrl, appId: int, recordId: int):
|
||||||
|
return f'{baseUrl}/Records/appId/{appId}/recordId/{recordId}'
|
||||||
|
|
||||||
|
def DeleteRecordByIdEndpoint(baseUrl, appId: int, recordId: int):
|
||||||
|
return f'{baseUrl}/Records/appId/{appId}/recordId/{recordId}'
|
||||||
|
|
||||||
|
def GetRecordsByIdsEndpoint(baseUrl):
|
||||||
|
return f'{baseUrl}/Records/batch-get'
|
||||||
|
|
||||||
|
def QueryRecordsEndpoint(baseUrl):
|
||||||
|
return f'{baseUrl}/Records/Query'
|
||||||
|
|
||||||
|
def AddOrUpdateRecordEndpoint(baseUrl):
|
||||||
|
return f'{baseUrl}/Records'
|
||||||
|
|
||||||
|
def DeleteRecordsByIds(baseUrl):
|
||||||
|
return f'{baseUrl}/Records/batch-delete'
|
||||||
|
|
||||||
|
# report endpoints
|
||||||
|
|
||||||
|
def GetReportByIdEndpoint(baseUrl, reportId: int):
|
||||||
|
return f'{baseUrl}/Reports/id/{reportId}'
|
||||||
|
|
||||||
|
def GetReportsByAppIdEndpoint(baseUrl, appId: int):
|
||||||
|
return f'{baseUrl}/Reports/appId/{appId}'
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
import uuid
|
||||||
|
|
||||||
# generic
|
# generic
|
||||||
|
|
||||||
@@ -97,7 +98,6 @@ class GetFileByIdResponse:
|
|||||||
def __init__(self, file: File):
|
def __init__(self, file: File):
|
||||||
self.file = file
|
self.file = file
|
||||||
|
|
||||||
|
|
||||||
class SaveFileRequest:
|
class SaveFileRequest:
|
||||||
def __init__(self, recordId: int, fieldId: int, fileName: str, filePath: str, contentType: str, notes: str=None, modifiedDate: datetime=None):
|
def __init__(self, recordId: int, fieldId: int, fileName: str, filePath: str, contentType: str, notes: str=None, modifiedDate: datetime=None):
|
||||||
self.recordId = recordId
|
self.recordId = recordId
|
||||||
@@ -111,3 +111,17 @@ class SaveFileRequest:
|
|||||||
class SaveFileResponse:
|
class SaveFileResponse:
|
||||||
def __init__(self, id: int):
|
def __init__(self, id: int):
|
||||||
self.id = id
|
self.id = id
|
||||||
|
|
||||||
|
# list specific
|
||||||
|
|
||||||
|
class ListItemRequest:
|
||||||
|
def __init__(self, listId: int, name: str, id: uuid=None, numericValue: int=None, color: str=None):
|
||||||
|
self.listId = listId
|
||||||
|
self.name = name
|
||||||
|
self.id = id
|
||||||
|
self.numericValue = numericValue
|
||||||
|
self.color = color
|
||||||
|
|
||||||
|
class AddOrUpdateListItemResponse:
|
||||||
|
def __init__(self, id: uuid):
|
||||||
|
self.id = id
|
||||||
+224
-23
@@ -2,7 +2,7 @@ import requests
|
|||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from UrlHelper import *
|
from Endpoints import *
|
||||||
from Models import *
|
from Models import *
|
||||||
|
|
||||||
class OnspringClient:
|
class OnspringClient:
|
||||||
@@ -96,6 +96,7 @@ class OnspringClient:
|
|||||||
headers=self.headers)
|
headers=self.headers)
|
||||||
|
|
||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
@@ -103,6 +104,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 403:
|
if response.status_code == 403:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Client does not have read access to the app',
|
message='Client does not have read access to the app',
|
||||||
@@ -110,6 +112,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 404:
|
if response.status_code == 404:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='App could not be found',
|
message='App could not be found',
|
||||||
@@ -159,6 +162,7 @@ class OnspringClient:
|
|||||||
data=appIds)
|
data=appIds)
|
||||||
|
|
||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
@@ -166,6 +170,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 403:
|
if response.status_code == 403:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Client does not have read access to the app',
|
message='Client does not have read access to the app',
|
||||||
@@ -213,6 +218,7 @@ class OnspringClient:
|
|||||||
headers=self.headers)
|
headers=self.headers)
|
||||||
|
|
||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
@@ -220,6 +226,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 403:
|
if response.status_code == 403:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Client does not have read access to the field',
|
message='Client does not have read access to the field',
|
||||||
@@ -227,6 +234,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 404:
|
if response.status_code == 404:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Field could not be found',
|
message='Field could not be found',
|
||||||
@@ -280,6 +288,7 @@ class OnspringClient:
|
|||||||
data=fieldIds)
|
data=fieldIds)
|
||||||
|
|
||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
@@ -287,6 +296,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 403:
|
if response.status_code == 403:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Client does not have read access to the field(s)',
|
message='Client does not have read access to the field(s)',
|
||||||
@@ -294,6 +304,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 404:
|
if response.status_code == 404:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Field(s) could not be found',
|
message='Field(s) could not be found',
|
||||||
@@ -346,6 +357,7 @@ class OnspringClient:
|
|||||||
params=params)
|
params=params)
|
||||||
|
|
||||||
if response.status_code == 400:
|
if response.status_code == 400:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Invalid paging information',
|
message='Invalid paging information',
|
||||||
@@ -353,6 +365,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
@@ -411,6 +424,7 @@ class OnspringClient:
|
|||||||
headers=self.headers,)
|
headers=self.headers,)
|
||||||
|
|
||||||
if response.status_code == 400:
|
if response.status_code == 400:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Request is invalid based on underlying data',
|
message='Request is invalid based on underlying data',
|
||||||
@@ -418,6 +432,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
@@ -425,6 +440,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 403:
|
if response.status_code == 403:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Client does not have read access to the file',
|
message='Client does not have read access to the file',
|
||||||
@@ -432,6 +448,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 404:
|
if response.status_code == 404:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='File could not be found',
|
message='File could not be found',
|
||||||
@@ -443,13 +460,13 @@ class OnspringClient:
|
|||||||
jsonResponse = response.json()
|
jsonResponse = response.json()
|
||||||
|
|
||||||
fileInfo = FileInfo(
|
fileInfo = FileInfo(
|
||||||
jsonResponse["type"],
|
jsonResponse['type'],
|
||||||
jsonResponse["contentType"],
|
jsonResponse['contentType'],
|
||||||
jsonResponse["name"],
|
jsonResponse['name'],
|
||||||
jsonResponse["createdDate"],
|
jsonResponse['createdDate'],
|
||||||
jsonResponse["modifiedDate"],
|
jsonResponse['modifiedDate'],
|
||||||
jsonResponse["owner"],
|
jsonResponse['owner'],
|
||||||
jsonResponse["fileHref"])
|
jsonResponse['fileHref'])
|
||||||
|
|
||||||
data = GetFileInfoByIdResponse(fileInfo)
|
data = GetFileInfoByIdResponse(fileInfo)
|
||||||
|
|
||||||
@@ -478,6 +495,7 @@ class OnspringClient:
|
|||||||
headers=self.headers,)
|
headers=self.headers,)
|
||||||
|
|
||||||
if response.status_code == 400:
|
if response.status_code == 400:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Request is invalid based on underlying data',
|
message='Request is invalid based on underlying data',
|
||||||
@@ -485,6 +503,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
@@ -497,11 +516,12 @@ class OnspringClient:
|
|||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message=jsonResponse["message"],
|
message=jsonResponse['message'],
|
||||||
headers=response.headers,
|
headers=response.headers,
|
||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 500:
|
if response.status_code == 500:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='File could not be deleted due to internal error',
|
message='File could not be deleted due to internal error',
|
||||||
@@ -509,9 +529,10 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 204:
|
if response.status_code == 204:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message="File deleted successfully",
|
message='File deleted successfully',
|
||||||
headers=response.headers,
|
headers=response.headers,
|
||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
@@ -534,6 +555,7 @@ class OnspringClient:
|
|||||||
headers=self.headers,)
|
headers=self.headers,)
|
||||||
|
|
||||||
if response.status_code == 400:
|
if response.status_code == 400:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Request is invalid based on underlying data',
|
message='Request is invalid based on underlying data',
|
||||||
@@ -541,6 +563,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
@@ -553,24 +576,24 @@ class OnspringClient:
|
|||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message=jsonResponse["message"],
|
message=jsonResponse['message'],
|
||||||
headers=response.headers,
|
headers=response.headers,
|
||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
fileName = response.headers["Content-Disposition"]
|
fileName = response.headers['Content-Disposition']
|
||||||
result = re.search("filename=.*;", fileName).group()
|
result = re.search('filename=.*;', fileName).group()
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
fileName = re.sub("filename=|\"|;", "", result)
|
fileName = re.sub('filename=|\'|;', '', result)
|
||||||
else:
|
else:
|
||||||
fileName = None
|
fileName = None
|
||||||
|
|
||||||
file = File(
|
file = File(
|
||||||
fileName,
|
fileName,
|
||||||
response.headers["Content-Type"],
|
response.headers['Content-Type'],
|
||||||
response.headers["Content-Length"],
|
response.headers['Content-Length'],
|
||||||
response.content)
|
response.content)
|
||||||
|
|
||||||
data = GetFileByIdResponse(file)
|
data = GetFileByIdResponse(file)
|
||||||
@@ -592,10 +615,10 @@ class OnspringClient:
|
|||||||
endpoint = SaveFileEndpoint(self.baseUrl)
|
endpoint = SaveFileEndpoint(self.baseUrl)
|
||||||
|
|
||||||
requestData = {
|
requestData = {
|
||||||
"recordId": saveFileRequest.recordId,
|
'recordId': saveFileRequest.recordId,
|
||||||
"fieldId": saveFileRequest.fieldId,
|
'fieldId': saveFileRequest.fieldId,
|
||||||
"notes": saveFileRequest.notes,
|
'notes': saveFileRequest.notes,
|
||||||
"modifiedDate": saveFileRequest.modifiedDate
|
'modifiedDate': saveFileRequest.modifiedDate
|
||||||
}
|
}
|
||||||
|
|
||||||
files = [
|
files = [
|
||||||
@@ -606,7 +629,7 @@ class OnspringClient:
|
|||||||
]
|
]
|
||||||
|
|
||||||
response = requests.request(
|
response = requests.request(
|
||||||
"POST",
|
'POST',
|
||||||
endpoint,
|
endpoint,
|
||||||
headers=self.headers,
|
headers=self.headers,
|
||||||
data=requestData,
|
data=requestData,
|
||||||
@@ -614,6 +637,7 @@ class OnspringClient:
|
|||||||
|
|
||||||
|
|
||||||
if response.status_code == 400:
|
if response.status_code == 400:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Request is invalid based on underlying data',
|
message='Request is invalid based on underlying data',
|
||||||
@@ -621,6 +645,7 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 401:
|
if response.status_code == 401:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
@@ -633,14 +658,14 @@ class OnspringClient:
|
|||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message=jsonResponse["message"],
|
message=jsonResponse['message'],
|
||||||
headers=response.headers,
|
headers=response.headers,
|
||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
if response.status_code == 201:
|
if response.status_code == 201:
|
||||||
responseJson = response.json()
|
responseJson = response.json()
|
||||||
|
|
||||||
data = SaveFileResponse(responseJson["id"])
|
data = SaveFileResponse(responseJson['id'])
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
@@ -654,5 +679,181 @@ class OnspringClient:
|
|||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
# list methods
|
# list methods
|
||||||
|
|
||||||
|
def AddOrUpdateListItem(self, listItemRequest: ListItemRequest):
|
||||||
|
|
||||||
|
endpoint = AddOrUpdateListItemEndpoint(self.baseUrl, listItemRequest.listId)
|
||||||
|
|
||||||
|
self.headers['Content-Type'] = 'application/json'
|
||||||
|
|
||||||
|
requestData = json.dumps({
|
||||||
|
'id': listItemRequest.id,
|
||||||
|
'name': listItemRequest.name,
|
||||||
|
'numericValue': listItemRequest.numericValue,
|
||||||
|
'color': listItemRequest.color
|
||||||
|
})
|
||||||
|
|
||||||
|
response = requests.request(
|
||||||
|
'PUT',
|
||||||
|
endpoint,
|
||||||
|
headers=self.headers,
|
||||||
|
data=requestData)
|
||||||
|
|
||||||
|
if response.status_code == 401:
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message='Unauthorized request',
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
|
if response.status_code in [403,404]:
|
||||||
|
|
||||||
|
jsonResponse = response.json()
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message=jsonResponse['message'],
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
|
if response.status_code == 201:
|
||||||
|
|
||||||
|
responseJson = response.json()
|
||||||
|
|
||||||
|
data = AddOrUpdateListItemResponse(responseJson['id'])
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
data,
|
||||||
|
message='New list value successfully added',
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
|
||||||
|
responseJson = response.json()
|
||||||
|
|
||||||
|
data = AddOrUpdateListItemResponse(responseJson['id'])
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
data,
|
||||||
|
message='Existing list value successfully updated',
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
|
def DeleteListItem(self, listId: int, itemId: uuid):
|
||||||
|
|
||||||
|
endpoint = DeleteListItemEndpoint(self.baseUrl, listId, itemId)
|
||||||
|
|
||||||
|
response = requests.request(
|
||||||
|
'DELETE',
|
||||||
|
endpoint,
|
||||||
|
headers=self.headers)
|
||||||
|
|
||||||
|
if response.status_code == 401:
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message='Unauthorized request',
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
|
if response.status_code == 403:
|
||||||
|
|
||||||
|
jsonResponse = response.json()
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message=jsonResponse['message'],
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
|
if response.status_code == 404:
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message='List/item could not be found',
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
|
if response.status_code == 204:
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message='Item deleted successfully',
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
headers=response.headers,
|
||||||
|
responseText=response.text)
|
||||||
|
|
||||||
# record methods
|
# record methods
|
||||||
|
|
||||||
|
def GetRecordsByAppId(self, appId: int):
|
||||||
|
|
||||||
|
endpoint = GetRecordsByAppIdEndpoint(self.baseUrl, appId)
|
||||||
|
|
||||||
|
response = requests.request(
|
||||||
|
'GET',)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def GetRecordById(self, appId: int, recordId: int):
|
||||||
|
|
||||||
|
endpoint = GetRecordByIdEndpoint(self.baseUrl, appId, recordId)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def DeleteRecordById(self, appId: int, recordId: int):
|
||||||
|
|
||||||
|
endpoint = DeleteRecordByIdEndpoint(self.baseUrl, appId, recordId)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def GetRecordsByIds(self):
|
||||||
|
|
||||||
|
endpoint = GetRecordsByIdsEndpoint(self.baseUrl)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def QueryRecords(self):
|
||||||
|
|
||||||
|
endpoint = GetRecordsByIdsEndpoint(self.baseUrl)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def AddOrUpdateRecord(self):
|
||||||
|
|
||||||
|
endpoint = AddOrUpdateRecordEndpoint(self.baseUrl)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def DeleteRecordsByIds(self):
|
||||||
|
|
||||||
|
endpoint = DeleteRecordsByIds(self.baseUrl)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
# report methods
|
# report methods
|
||||||
|
|
||||||
|
def GetReportById(self, reportId: int):
|
||||||
|
|
||||||
|
endpoint = GetReportByIdEndpoint(self.baseUrl, reportId)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def GetReportsByAppId(self, appId: int):
|
||||||
|
|
||||||
|
endpoint = GetReportsByAppIdEndpoint(self.baseUrl, appId)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
# connectivity endpoints
|
|
||||||
|
|
||||||
def GetPingEndpoint(baseUrl):
|
|
||||||
return f'{baseUrl}/Ping'
|
|
||||||
|
|
||||||
# app endpoints
|
|
||||||
|
|
||||||
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'
|
|
||||||
|
|
||||||
# field endpoints
|
|
||||||
|
|
||||||
def GetFieldByIdEndpoint(baseUrl, fieldId):
|
|
||||||
return f'{baseUrl}/Fields/id/{fieldId}'
|
|
||||||
|
|
||||||
def GetFieldsByIdsEndpoint(baseUrl):
|
|
||||||
return f'{baseUrl}/Fields/batch-get'
|
|
||||||
|
|
||||||
def GetFieldsByAppIdEndpoint(baseUrl, appId):
|
|
||||||
return f'{baseUrl}/Fields/appId/{appId}'
|
|
||||||
|
|
||||||
# file endpoints
|
|
||||||
|
|
||||||
def GetFileInfoByIdEndpoint(baseUrl, recordId, fieldId, fileId):
|
|
||||||
return f'{baseUrl}/Files/recordId/{recordId}/fieldId/{fieldId}/fileId/{fileId}'
|
|
||||||
|
|
||||||
def DeleteFileByIdEndpoint(baseUrl, recordId, fieldId, fileId):
|
|
||||||
return f'{baseUrl}/Files/recordId/{recordId}/fieldId/{fieldId}/fileId/{fileId}'
|
|
||||||
|
|
||||||
def GetFileByIdEndpoint(baseUrl, recordId, fieldId, fileId):
|
|
||||||
return f'{baseUrl}/Files/recordId/{recordId}/fieldId/{fieldId}/fileId/{fileId}/file'
|
|
||||||
|
|
||||||
def SaveFileEndpoint(baseUrl):
|
|
||||||
return f'{baseUrl}/Files'
|
|
||||||
|
|
||||||
# list endpoints
|
|
||||||
|
|
||||||
# record endpoints
|
|
||||||
|
|
||||||
# report endpoints
|
|
||||||
Reference in New Issue
Block a user