more work;

This commit is contained in:
StevanFreeborn
2022-04-19 11:11:05 -05:00
parent 5edb5075b9
commit 98839ec4c8
2 changed files with 118 additions and 86 deletions
+87 -72
View File
@@ -56,23 +56,26 @@ class OnspringClient:
if response.status_code == 200: if response.status_code == 200:
responseJson = response.json() responseJson = dict(response.json())
apps = [] apps = []
for item in responseJson['items']: for item in responseJson.get('items'):
item = dict(item)
app = App( app = App(
item['href'], item.get('href'),
item['id'], item.get('id'),
item['name']) item.get('name'))
apps.append(app) apps.append(app)
data = GetAppsResponse( data = GetAppsResponse(
responseJson['pageNumber'], responseJson.get('pageNumber'),
responseJson['pageSize'], responseJson.get('pageSize'),
responseJson['totalPages'], responseJson.get('totalPages'),
responseJson['totalRecords'], responseJson.get('totalRecords'),
apps) apps)
return ApiResponse( return ApiResponse(
@@ -121,12 +124,12 @@ class OnspringClient:
if response.status_code == 200: if response.status_code == 200:
responseJson = response.json() responseJson = dict(response.json())
app = App( app = App(
responseJson['href'], responseJson.get('href'),
responseJson['id'], responseJson.get('id'),
responseJson['name']) responseJson.get('name'))
data = GetAppByIdResponse(app) data = GetAppByIdResponse(app)
@@ -179,20 +182,23 @@ class OnspringClient:
if response.status_code == 200: if response.status_code == 200:
responseJson = response.json() responseJson = dict(response.json())
apps = [] apps = []
for item in responseJson['items']: for item in responseJson['items']:
item = dict(item)
app = App( app = App(
item['href'], item.get('href'),
item['id'], item.get('id'),
item['name']) item.get('name'))
apps.append(app) apps.append(app)
data = GetAppsByIdsResponse( data = GetAppsByIdsResponse(
responseJson['count'], responseJson.get('count'),
apps) apps)
return ApiResponse( return ApiResponse(
@@ -243,16 +249,16 @@ class OnspringClient:
if response.status_code == 200: if response.status_code == 200:
jsonResponse = response.json() jsonResponse = dict(response.json())
field = Field( field = Field(
jsonResponse['id'], jsonResponse.get('id'),
jsonResponse['appId'], jsonResponse.get('appId'),
jsonResponse['name'], jsonResponse.get('name'),
jsonResponse['type'], jsonResponse.get('type'),
jsonResponse['status'], jsonResponse.get('status'),
jsonResponse['isRequired'], jsonResponse.get('isRequired'),
jsonResponse['isUnique'],) jsonResponse.get('isUnique'))
data = GetFieldByIdResponse(field) data = GetFieldByIdResponse(field)
@@ -313,24 +319,27 @@ class OnspringClient:
if response.status_code == 200: if response.status_code == 200:
responseJson = response.json() responseJson = dict(response.json())
fields = [] fields = []
for item in responseJson['items']: for item in responseJson.get('items'):
item = dict(item)
field = Field( field = Field(
item['id'], item.get('id'),
item['appId'], item.get('appId'),
item['name'], item.get('name'),
item['type'], item.get('type'),
item['status'], item.get('status'),
item['isRequired'], item.get('isRequired'),
item['isUnique']) item.get('isUnique'))
fields.append(field) fields.append(field)
data = GetFieldsByIdsResponse( data = GetFieldsByIdsResponse(
responseJson['count'], responseJson.get('count'),
fields) fields)
return ApiResponse( return ApiResponse(
@@ -374,27 +383,30 @@ class OnspringClient:
if response.status_code == 200: if response.status_code == 200:
responseJson = response.json() responseJson = dict(response.json())
fields = [] fields = []
for item in responseJson['items']: for item in responseJson.get('items'):
item = dict(item)
field = Field( field = Field(
item['id'], item.get('id'),
item['appId'], item.get('appId'),
item['name'], item.get('name'),
item['type'], item.get('type'),
item['status'], item.get('status'),
item['isRequired'], item.get('isRequired'),
item['isUnique']) item.get('isUnique'))
fields.append(field) fields.append(field)
data = GetFieldsByAppIdResponse( data = GetFieldsByAppIdResponse(
responseJson['pageNumber'], responseJson.get('pageNumber'),
responseJson['pageSize'], responseJson.get('pageSize'),
responseJson['totalPages'], responseJson.get('totalPages'),
responseJson['totalRecords'], responseJson.get('totalRecords'),
fields) fields)
return ApiResponse( return ApiResponse(
@@ -457,19 +469,19 @@ class OnspringClient:
if response.status_code == 200: if response.status_code == 200:
jsonResponse = response.json() jsonResponse = dict(response.json())
createdDate = parseDate(jsonResponse['createdDate']) createdDate = parseDate(jsonResponse.get('createdDate'))
modifiedDate = parseDate(jsonResponse['modifiedDate']) modifiedDate = parseDate(jsonResponse.get('modifiedDate'))
fileInfo = FileInfo( fileInfo = FileInfo(
jsonResponse['type'], jsonResponse.get('type'),
jsonResponse['contentType'], jsonResponse.get('contentType'),
jsonResponse['name'], jsonResponse.get('name'),
createdDate, createdDate,
modifiedDate, modifiedDate,
jsonResponse['owner'], jsonResponse.get('owner'),
jsonResponse['fileHref']) jsonResponse.get('fileHref'))
data = GetFileInfoByIdResponse(fileInfo) data = GetFileInfoByIdResponse(fileInfo)
@@ -515,11 +527,11 @@ class OnspringClient:
if response.status_code == 403 or response.status_code == 404: if response.status_code == 403 or response.status_code == 404:
jsonResponse = response.json() jsonResponse = dict(response.json())
return ApiResponse( return ApiResponse(
response.status_code, response.status_code,
message=jsonResponse['message'], message=jsonResponse.get('message'),
headers=response.headers, headers=response.headers,
responseText=response.text) responseText=response.text)
@@ -575,19 +587,23 @@ class OnspringClient:
if response.status_code == 403 or response.status_code == 404: if response.status_code == 403 or response.status_code == 404:
jsonResponse = response.json() jsonResponse = dict(response.json())
return ApiResponse( return ApiResponse(
response.status_code, response.status_code,
message=jsonResponse['message'], message=jsonResponse.get('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'] headers = dict(response.headers)
fileName = headers.get('Content-Disposition')
result = re.search('filename=.*;', fileName).group() result = re.search('filename=.*;', fileName).group()
# TODO: implement attempting to build file name using content-type header
# TODO: implement default filename value
if result: if result:
fileName = re.sub('filename=|\'|;', '', result) fileName = re.sub('filename=|\'|;', '', result)
else: else:
@@ -595,8 +611,8 @@ class OnspringClient:
file = File( file = File(
fileName, fileName,
response.headers['Content-Type'], headers.get('Content-Type'),
response.headers['Content-Length'], headers.get('Content-Length'),
response.content) response.content)
data = GetFileByIdResponse(file) data = GetFileByIdResponse(file)
@@ -617,13 +633,6 @@ class OnspringClient:
endpoint = SaveFileEndpoint(self.baseUrl) endpoint = SaveFileEndpoint(self.baseUrl)
requestData = {
'recordId': saveFileRequest.recordId,
'fieldId': saveFileRequest.fieldId,
'notes': saveFileRequest.notes,
'modifiedDate': saveFileRequest.modifiedDate
}
files = [ files = [
( (
'File', 'File',
@@ -631,6 +640,13 @@ class OnspringClient:
) )
] ]
saveFileRequest = saveFileRequest.__dict__
del saveFileRequest['fileName']
del saveFileRequest['filePath']
del saveFileRequest['contentType']
requestData = saveFileRequest
response = requests.request( response = requests.request(
'POST', 'POST',
endpoint, endpoint,
@@ -638,7 +654,6 @@ class OnspringClient:
data=requestData, data=requestData,
files=files) files=files)
if response.status_code == 400: if response.status_code == 400:
return ApiResponse( return ApiResponse(
+25 -8
View File
@@ -10,19 +10,36 @@ url = cfg['prod']['url']
onspringClient = OnspringClient(url, key) onspringClient = OnspringClient(url, key)
request = GetRecordsByAppRequest(240, dataFormat=DataFormat.Raw.name) def GetRecordsByAppRequestTest():
response = onspringClient.GetRecordsByAppId(request) request = GetRecordsByAppRequest(240, dataFormat=DataFormat.Raw.name)
print(f'Status Code: {response.statusCode}') response = onspringClient.GetRecordsByAppId(request)
print(f'Page Size: {response.data.pageSize}')
print(f'Page Number: {response.data.pageNumber}')
print(f'Total Pages: {response.data.totalPages}')
print(f'Total Records: {response.data.totalRecords}')
for record in response.data.records: print(f'Status Code: {response.statusCode}')
print(f'Page Size: {response.data.pageSize}')
print(f'Page Number: {response.data.pageNumber}')
print(f'Total Pages: {response.data.totalPages}')
print(f'Total Records: {response.data.totalRecords}')
for record in response.data.records:
print(f' AppId: {record.appId}') print(f' AppId: {record.appId}')
print(f' RecordId: {record.recordId}') print(f' RecordId: {record.recordId}')
for field in record.fields: for field in record.fields:
print(f' Type: {field.type}, FieldId: {field.fieldId}, Value: {field.getValue()}') print(f' Type: {field.type}, FieldId: {field.fieldId}, Value: {field.getValue()}')
filePath = 'C:\\Users\\sfree\\OneDrive\\Desktop\\Test Attachment.txt'
request = SaveFileRequest(
60,
6989,
'Test Attachment.text',
filePath, 'text/plain',
'Updating record with attachment')
response = onspringClient.SaveFile(request)
print(response.statusCode)