more work;

This commit is contained in:
StevanFreeborn
2022-04-19 13:17:53 -05:00
parent c9bc3062ed
commit 7e3d43fded
3 changed files with 152 additions and 88 deletions
+122
View File
@@ -0,0 +1,122 @@
from http import client
import mimetypes
import os
from OnspringClient import OnspringClient
from configparser import ConfigParser
from Helpers import GetResultValueString
from Models import *
from Enums import *
cfg = ConfigParser()
cfg.read('config.ini')
key = cfg['prod']['key']
url = cfg['prod']['url']
onspring = OnspringClient(url, key)
def main():
# PrintGetApps(onspring)
PrintGetAppById(onspring, 195)
# PrintSaveFile(
# onspring,
# 'C:\\Users\\sfree\\OneDrive\\Desktop\\Test Attachment.txt',
# 60,
# 6989
# )
return
#connectivity
def PrintCanConnect(client: OnspringClient):
print(client.CanConnect())
# apps
def PrintGetApps(client: OnspringClient):
response = client.GetApps()
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}')
print('----')
for app in response.data.apps:
print(f'Id: {app.id}')
print(f'Name: {app.name}')
print(f'href: {app.href}')
print('--')
print('----')
def PrintGetAppById(client: OnspringClient, appId: int):
response = client.GetAppById(appId)
print(f'Status Code: {response.statusCode}')
print(f'id: {response.data.app.id}')
print(f'Name: {response.data.app.name}')
print(f'href: {response.data.app.href}')
# records
def PrintGetRecordsByAppId(client: OnspringClient, appId: int):
request = GetRecordsByAppRequest(appId, dataFormat=DataFormat.Raw.name)
response = client.GetRecordsByAppId(request)
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}')
print('----')
for record in response.data.records:
print(f'AppId: {record.appId}')
print(f'RecordId: {record.recordId}')
print('--')
for field in record.fields:
print(f'Type: {field.type}')
print(f'FieldId: {field.fieldId}')
print(f'Value: {GetResultValueString(field)}')
print('--')
print('----')
# files
def PrintSaveFile(client: OnspringClient, filePath: str, recordId: int, fieldId: int, notes: str=None, modifiedDate: datetime=None):
filePath = filePath
fileName = os.path.basename(filePath)
contentType = mimetypes.guess_type(filePath)
request = SaveFileRequest(
recordId,
fieldId,
fileName,
filePath,
contentType,
notes,
modifiedDate)
response = client.SaveFile(request)
print(f'Status Code: {response.statusCode}')
print(f'File Id: {response.data.id}')
if __name__ == "__main__":
main()
+30 -25
View File
@@ -15,7 +15,7 @@ class OnspringClient:
# connectivity methods
def canConnect(self):
def CanConnect(self):
endpoint = GetPingEndpoint(self.baseUrl)
@@ -672,18 +672,19 @@ class OnspringClient:
if response.status_code in [403,404,500]:
jsonResponse = response.json()
jsonResponse = dict(response.json())
return ApiResponse(
response.status_code,
message=jsonResponse['message'],
message=jsonResponse.get('message'),
headers=response.headers,
responseText=response.text)
if response.status_code == 201:
responseJson = response.json()
data = SaveFileResponse(responseJson['id'])
responseJson = dict(response.json())
data = SaveFileResponse(responseJson.get('id'))
return ApiResponse(
response.status_code,
@@ -724,19 +725,19 @@ class OnspringClient:
if response.status_code in [403,404]:
jsonResponse = response.json()
jsonResponse = dict(response.json())
return ApiResponse(
response.status_code,
message=jsonResponse['message'],
message=jsonResponse.get('message'),
headers=response.headers,
responseText=response.text)
if response.status_code == 201:
responseJson = response.json()
responseJson = dict(response.json())
data = AddOrUpdateListItemResponse(responseJson['id'])
data = AddOrUpdateListItemResponse(responseJson.get('id'))
return ApiResponse(
response.status_code,
@@ -747,9 +748,9 @@ class OnspringClient:
if response.status_code == 200:
responseJson = response.json()
responseJson = dict(response.json())
data = AddOrUpdateListItemResponse(responseJson['id'])
data = AddOrUpdateListItemResponse(responseJson.get('id'))
return ApiResponse(
response.status_code,
@@ -782,11 +783,11 @@ class OnspringClient:
if response.status_code == 403:
jsonResponse = response.json()
jsonResponse = dict(response.json())
return ApiResponse(
response.status_code,
message=jsonResponse['message'],
message=jsonResponse.get('message'),
headers=response.headers,
responseText=response.text)
@@ -834,25 +835,29 @@ class OnspringClient:
if response.status_code == 200:
jsonResponse = response.json()
jsonResponse = dict(response.json())
records = []
for item in jsonResponse['items']:
for item in jsonResponse.get('items'):
item = dict(item)
fields = []
record = Record(
item['appId'],
item['recordId'],
item.get('appId'),
item.get('recordId'),
fields)
for field in item['fieldData']:
for field in item.get('fieldData'):
field = dict(field)
field = RecordFieldValue(
field['type'],
field['fieldId'],
field['value'])
field.get('type'),
field.get('fieldId'),
field.get('value'))
fields.append(field)
@@ -861,10 +866,10 @@ class OnspringClient:
records.append(record)
data = GetRecordsByAppResponse(
jsonResponse['pageNumber'],
jsonResponse['pageSize'],
jsonResponse['totalPages'],
jsonResponse['totalRecords'],
jsonResponse.get('pageNumber'),
jsonResponse.get('pageSize'),
jsonResponse.get('totalPages'),
jsonResponse.get('totalRecords'),
records)
return ApiResponse(
-63
View File
@@ -1,63 +0,0 @@
from OnspringClient import OnspringClient
from configparser import ConfigParser
from Helpers import GetResultValueString
from Models import *
from Enums import *
cfg = ConfigParser()
cfg.read('config.ini')
key = cfg['prod']['key']
url = cfg['prod']['url']
onspringClient = OnspringClient(url, key)
def main():
GetRecordsByAppIdTest()
# apps
def GetRecordsByAppIdTest():
request = GetRecordsByAppRequest(240, dataFormat=DataFormat.Raw.name)
response = onspringClient.GetRecordsByAppId(request)
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'RecordId: {record.recordId}')
for field in record.fields:
print(f'Type: {field.type}')
print(f'FieldId: {field.fieldId}')
print(f'Value: {GetResultValueString(field)}')
# files
def SaveFileTest():
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)
print(response.data.id)
if __name__ == "__main__":
main()