more work;
This commit is contained in:
+163
-7
@@ -1,4 +1,3 @@
|
|||||||
from http import client
|
|
||||||
import mimetypes
|
import mimetypes
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
@@ -20,16 +19,25 @@ onspring = OnspringClient(url, key)
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
||||||
match sys.argv[1].lower():
|
if not len(sys.argv) > 1:
|
||||||
case 'connect':
|
print('No valid command given')
|
||||||
|
return
|
||||||
|
|
||||||
|
command = sys.argv[1].lower()
|
||||||
|
|
||||||
|
if command =='connect':
|
||||||
PrintCanConnect(onspring)
|
PrintCanConnect(onspring)
|
||||||
case 'getapps':
|
|
||||||
|
if command == 'getapps':
|
||||||
PrintGetApps(onspring)
|
PrintGetApps(onspring)
|
||||||
case 'getappbyid':
|
|
||||||
|
if command == 'getappbyid':
|
||||||
PrintGetAppById(onspring, 195)
|
PrintGetAppById(onspring, 195)
|
||||||
case 'getappsbyids':
|
|
||||||
|
if command == 'getappsbyids':
|
||||||
PrintGetAppsByIds(onspring, [195, 240])
|
PrintGetAppsByIds(onspring, [195, 240])
|
||||||
case 'savefile':
|
|
||||||
|
if command == 'savefile':
|
||||||
PrintSaveFile(
|
PrintSaveFile(
|
||||||
onspring,
|
onspring,
|
||||||
'C:\\Users\\sfree\\OneDrive\\Desktop\\Test Attachment.txt',
|
'C:\\Users\\sfree\\OneDrive\\Desktop\\Test Attachment.txt',
|
||||||
@@ -37,6 +45,50 @@ def main():
|
|||||||
6989
|
6989
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if command == 'getrecordsbyappid':
|
||||||
|
PrintGetRecordsByAppId(onspring, 195)
|
||||||
|
return
|
||||||
|
|
||||||
|
if command == 'getrecordbyid':
|
||||||
|
PrintGetRecordById(onspring, 195, 5)
|
||||||
|
return
|
||||||
|
|
||||||
|
if command == 'deleterecord':
|
||||||
|
PrintDeleteRecord(onspring, 195, sys.argv[2])
|
||||||
|
return
|
||||||
|
|
||||||
|
if command == 'getrecordsbyids':
|
||||||
|
PrintGetRecordsByIds(onspring, 195, [1, 2], [6983, 6984])
|
||||||
|
return
|
||||||
|
|
||||||
|
if command == 'queryrecords':
|
||||||
|
fieldId = 6983
|
||||||
|
operator = 'eq'
|
||||||
|
value = '\'Test Task 5\''
|
||||||
|
PrintQueryRecords(onspring, 195, f'{fieldId} {operator} {value}')
|
||||||
|
return
|
||||||
|
|
||||||
|
if command == 'addrecord':
|
||||||
|
|
||||||
|
fields = [
|
||||||
|
RecordFieldValue(6983, 'A New Test Task'),
|
||||||
|
RecordFieldValue(6984, 'This is a test task.')
|
||||||
|
]
|
||||||
|
|
||||||
|
PrintAddOrUpdateRecord(onspring, 195, fields)
|
||||||
|
return
|
||||||
|
|
||||||
|
if command == 'updaterecord':
|
||||||
|
|
||||||
|
fields = [
|
||||||
|
RecordFieldValue(6983, 'Updated'),
|
||||||
|
RecordFieldValue(6984, 'Updated')
|
||||||
|
]
|
||||||
|
|
||||||
|
PrintAddOrUpdateRecord(onspring, 195, fields, 60)
|
||||||
|
return
|
||||||
|
|
||||||
|
print('No valid command given')
|
||||||
return
|
return
|
||||||
|
|
||||||
#connectivity
|
#connectivity
|
||||||
@@ -119,6 +171,110 @@ def PrintGetRecordsByAppId(client: OnspringClient, appId: int):
|
|||||||
|
|
||||||
print('----')
|
print('----')
|
||||||
|
|
||||||
|
def PrintGetRecordById(client: OnspringClient, appId: int, recordId: int, fieldIds: list[int]=[], dataFormat: str=DataFormat.Raw.name):
|
||||||
|
|
||||||
|
request = GetRecordByIdRequest(
|
||||||
|
appId,
|
||||||
|
recordId,
|
||||||
|
fieldIds,
|
||||||
|
dataFormat)
|
||||||
|
|
||||||
|
response = client.GetRecordById(request)
|
||||||
|
|
||||||
|
print(f'Status Code: {response.statusCode}')
|
||||||
|
print('----')
|
||||||
|
print(f'AppId: {response.data.appId}')
|
||||||
|
print(f'RecordId: {response.data.recordId}')
|
||||||
|
print('--')
|
||||||
|
|
||||||
|
for field in response.data.fields:
|
||||||
|
print(f'Type: {field.type}')
|
||||||
|
print(f'FieldId: {field.fieldId}')
|
||||||
|
print(f'Value: {GetResultValueString(field)}')
|
||||||
|
print('--')
|
||||||
|
|
||||||
|
print('----')
|
||||||
|
|
||||||
|
def PrintDeleteRecord(client: OnspringClient, appId: int, recordId: int):
|
||||||
|
|
||||||
|
response = client.DeleteRecordById(appId, recordId)
|
||||||
|
|
||||||
|
print(f'Status Code: {response.statusCode}')
|
||||||
|
print(f'Message: {response.message}')
|
||||||
|
|
||||||
|
def PrintGetRecordsByIds(client: OnspringClient, appId: int, recordIds: list[int], fieldIds: list[int]=[], dataFormat: str=DataFormat.Raw.name):
|
||||||
|
|
||||||
|
request = GetBatchRecordsRequest(
|
||||||
|
appId,
|
||||||
|
recordIds,
|
||||||
|
fieldIds,
|
||||||
|
dataFormat)
|
||||||
|
|
||||||
|
response = client.GetRecordsByIds(request)
|
||||||
|
|
||||||
|
print(f'Status Code: {response.statusCode}')
|
||||||
|
print(f'Count: {response.data.count}')
|
||||||
|
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('----')
|
||||||
|
|
||||||
|
|
||||||
|
def PrintQueryRecords(client: OnspringClient, appId: int, filter: str, fieldIds: list[int]=[], dataFormat: str=DataFormat.Raw.name, pagingRequest: PagingRequest=PagingRequest(1,50)):
|
||||||
|
|
||||||
|
request = QueryRecordsRequest(
|
||||||
|
appId,
|
||||||
|
filter,
|
||||||
|
fieldIds,
|
||||||
|
dataFormat,
|
||||||
|
pagingRequest)
|
||||||
|
|
||||||
|
response = client.QueryRecords(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('----')
|
||||||
|
|
||||||
|
def PrintAddOrUpdateRecord(client: OnspringClient, appId: int, fields: list[RecordFieldValue], recordId: int=None):
|
||||||
|
|
||||||
|
record = Record(
|
||||||
|
appId,
|
||||||
|
fields,
|
||||||
|
recordId)
|
||||||
|
|
||||||
|
response = client.AddOrUpdateRecord(record)
|
||||||
|
|
||||||
|
print(response.status_code)
|
||||||
|
print(response.text)
|
||||||
|
print(response.request.body)
|
||||||
|
|
||||||
|
|
||||||
# files
|
# files
|
||||||
|
|
||||||
def PrintSaveFile(client: OnspringClient, filePath: str, recordId: int, fieldId: int, notes: str=None, modifiedDate: datetime=None):
|
def PrintSaveFile(client: OnspringClient, filePath: str, recordId: int, fieldId: int, notes: str=None, modifiedDate: datetime=None):
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
from requests import Response
|
||||||
|
|
||||||
from Enums import *
|
from Enums import *
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@@ -9,13 +11,12 @@ from Helpers import parseDate
|
|||||||
# generic
|
# generic
|
||||||
|
|
||||||
class ApiResponse:
|
class ApiResponse:
|
||||||
def __init__(self, statusCode=None, data=None, message=None, headers=None, responseText=None):
|
def __init__(self, statusCode=None, data=None, message=None, raw=None):
|
||||||
self.statusCode = statusCode
|
self.statusCode = statusCode
|
||||||
self.isSuccessful = int(statusCode) < 400
|
self.isSuccessful = int(statusCode) < 400
|
||||||
self.data = data
|
self.data = data
|
||||||
self.message = message
|
self.message = message
|
||||||
self.headers=None
|
self.raw = raw
|
||||||
self.responseText = responseText
|
|
||||||
|
|
||||||
class PagingRequest:
|
class PagingRequest:
|
||||||
def __init__(self, pageNumber: int, pageSize: int):
|
def __init__(self, pageNumber: int, pageSize: int):
|
||||||
@@ -218,7 +219,7 @@ class ScoringGroupListValue:
|
|||||||
# record specific
|
# record specific
|
||||||
|
|
||||||
class RecordFieldValue:
|
class RecordFieldValue:
|
||||||
def __init__(self, type: str, fieldId: int, value: str):
|
def __init__(self, fieldId: int, value: str, type: str=None):
|
||||||
self.type = type
|
self.type = type
|
||||||
self.fieldId = fieldId
|
self.fieldId = fieldId
|
||||||
self.value = value
|
self.value = value
|
||||||
@@ -389,7 +390,7 @@ class RecordFieldValue:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
class Record:
|
class Record:
|
||||||
def __init__(self, appId: int, recordId: int, fields: list[RecordFieldValue]):
|
def __init__(self, appId: int, fields: list[RecordFieldValue], recordId: int=None):
|
||||||
self.appId = appId
|
self.appId = appId
|
||||||
self.recordId = recordId
|
self.recordId = recordId
|
||||||
self.fields = fields
|
self.fields = fields
|
||||||
@@ -402,10 +403,42 @@ class GetRecordsByAppRequest:
|
|||||||
self.pageSize = pagingRequest.pageSize
|
self.pageSize = pagingRequest.pageSize
|
||||||
self.pageNumber = pagingRequest.pageNumber
|
self.pageNumber = pagingRequest.pageNumber
|
||||||
|
|
||||||
class GetRecordsByAppResponse:
|
class QueryRecordsRequest:
|
||||||
|
def __init__(self, appId: int, filter: str, fieldIds: list[int]=[], dataFormat: str=DataFormat.Raw.name, pagingRequest: PagingRequest=PagingRequest(1,50)):
|
||||||
|
self.appId = appId
|
||||||
|
self.filter = filter
|
||||||
|
self.fieldIds = fieldIds
|
||||||
|
self.dataFormat = dataFormat
|
||||||
|
self.pagingRequest = pagingRequest
|
||||||
|
|
||||||
|
class GetRecordsResponse:
|
||||||
def __init__(self, pageNumber: int, pageSize: int, totalPages: int, totalRecords: int, records: list[Record]):
|
def __init__(self, pageNumber: int, pageSize: int, totalPages: int, totalRecords: int, records: list[Record]):
|
||||||
self.pageNumber = pageNumber
|
self.pageNumber = pageNumber
|
||||||
self.pageSize = pageSize
|
self.pageSize = pageSize
|
||||||
self.totalPages = totalPages
|
self.totalPages = totalPages
|
||||||
self.totalRecords = totalRecords
|
self.totalRecords = totalRecords
|
||||||
self.records = records
|
self.records = records
|
||||||
|
|
||||||
|
class GetRecordByIdRequest:
|
||||||
|
def __init__(self, appId: int, recordId: int, fieldIds: list[int]=[], dataFormat: str=DataFormat.Raw.name):
|
||||||
|
self.appId = appId
|
||||||
|
self.recordId = recordId
|
||||||
|
self.fieldIds = fieldIds
|
||||||
|
self.dataFormat = dataFormat
|
||||||
|
|
||||||
|
class GetBatchRecordsRequest:
|
||||||
|
def __init__(self, appId: int, recordIds: list[int], fieldIds: list[int]=[], dataFormat: str=DataFormat.Raw.name):
|
||||||
|
self.appId = appId
|
||||||
|
self.recordIds = recordIds
|
||||||
|
self.fieldIds = fieldIds
|
||||||
|
self.dataFormat = dataFormat
|
||||||
|
|
||||||
|
class GetBatchRecordsResponse:
|
||||||
|
def __init__(self, count: int, records: list[Record]):
|
||||||
|
self.count = count
|
||||||
|
self.records = records
|
||||||
|
|
||||||
|
class AddOrUpdateRecordResponse:
|
||||||
|
def __init__(self, id: int, warnings: list[str]=[]):
|
||||||
|
self.id = id
|
||||||
|
self.warnings = warnings
|
||||||
+399
-154
@@ -1,3 +1,4 @@
|
|||||||
|
from urllib import response
|
||||||
import requests
|
import requests
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
@@ -44,15 +45,13 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Invalid paging information',
|
message='Invalid paging information',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
@@ -81,13 +80,11 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
def GetAppById(self, appId: int):
|
def GetAppById(self, appId: int):
|
||||||
|
|
||||||
@@ -103,24 +100,21 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
@@ -136,13 +130,11 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
def GetAppsByIds(self, appIds: list):
|
def GetAppsByIds(self, appIds: list):
|
||||||
|
|
||||||
@@ -169,16 +161,14 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
@@ -204,13 +194,11 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
# field methods
|
# field methods
|
||||||
|
|
||||||
@@ -228,24 +216,21 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
@@ -265,13 +250,11 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
def GetFieldsByIds(self, fieldIds: list):
|
def GetFieldsByIds(self, fieldIds: list):
|
||||||
|
|
||||||
@@ -298,24 +281,21 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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)',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
@@ -345,13 +325,11 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
def GetFieldsByAppId(self, appId: int, pagingRequest=PagingRequest(1, 50)):
|
def GetFieldsByAppId(self, appId: int, pagingRequest=PagingRequest(1, 50)):
|
||||||
|
|
||||||
@@ -370,16 +348,14 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Invalid paging information',
|
message='Invalid paging information',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
@@ -412,13 +388,11 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
# file methods
|
# file methods
|
||||||
|
|
||||||
@@ -440,32 +414,28 @@ class OnspringClient:
|
|||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
@@ -488,13 +458,11 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
def DeleteFileById(self, recordId: int, fieldId: int, fileId: int):
|
def DeleteFileById(self, recordId: int, fieldId: int, fileId: int):
|
||||||
|
|
||||||
@@ -514,16 +482,14 @@ class OnspringClient:
|
|||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 403 or response.status_code == 404:
|
if response.status_code == 403 or response.status_code == 404:
|
||||||
|
|
||||||
@@ -532,29 +498,25 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message=jsonResponse.get('message'),
|
message=jsonResponse.get('message'),
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
def GetFileById(self, recordId: int, fieldId: int, fileId: int):
|
def GetFileById(self, recordId: int, fieldId: int, fileId: int):
|
||||||
|
|
||||||
@@ -574,16 +536,14 @@ class OnspringClient:
|
|||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 403 or response.status_code == 404:
|
if response.status_code == 403 or response.status_code == 404:
|
||||||
|
|
||||||
@@ -592,8 +552,7 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message=jsonResponse.get('message'),
|
message=jsonResponse.get('message'),
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
@@ -607,7 +566,7 @@ class OnspringClient:
|
|||||||
if result:
|
if result:
|
||||||
fileName = re.sub('filename=|\'|;', '', result)
|
fileName = re.sub('filename=|\'|;', '', result)
|
||||||
else:
|
else:
|
||||||
fileName = None
|
fileName = 'OnspringFile'
|
||||||
|
|
||||||
file = File(
|
file = File(
|
||||||
fileName,
|
fileName,
|
||||||
@@ -620,14 +579,12 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
def SaveFile(self, saveFileRequest: SaveFileRequest):
|
def SaveFile(self, saveFileRequest: SaveFileRequest):
|
||||||
|
|
||||||
@@ -659,16 +616,14 @@ class OnspringClient:
|
|||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
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',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code in [403,404,500]:
|
if response.status_code in [403,404,500]:
|
||||||
|
|
||||||
@@ -677,8 +632,7 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message=jsonResponse.get('message'),
|
message=jsonResponse.get('message'),
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 201:
|
if response.status_code == 201:
|
||||||
|
|
||||||
@@ -689,13 +643,11 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
# list methods
|
# list methods
|
||||||
|
|
||||||
@@ -720,8 +672,7 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code in [403,404]:
|
if response.status_code in [403,404]:
|
||||||
|
|
||||||
@@ -730,8 +681,7 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message=jsonResponse.get('message'),
|
message=jsonResponse.get('message'),
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 201:
|
if response.status_code == 201:
|
||||||
|
|
||||||
@@ -743,8 +693,7 @@ class OnspringClient:
|
|||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
message='New list value successfully added',
|
message='New list value successfully added',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
|
|
||||||
@@ -756,13 +705,11 @@ class OnspringClient:
|
|||||||
response.status_code,
|
response.status_code,
|
||||||
data,
|
data,
|
||||||
message='Existing list value successfully updated',
|
message='Existing list value successfully updated',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
def DeleteListItem(self, listId: int, itemId: uuid):
|
def DeleteListItem(self, listId: int, itemId: uuid):
|
||||||
|
|
||||||
@@ -778,8 +725,7 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Unauthorized request',
|
message='Unauthorized request',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 403:
|
if response.status_code == 403:
|
||||||
|
|
||||||
@@ -788,29 +734,25 @@ class OnspringClient:
|
|||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message=jsonResponse.get('message'),
|
message=jsonResponse.get('message'),
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 404:
|
if response.status_code == 404:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='List/item could not be found',
|
message='List/item could not be found',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
if response.status_code == 204:
|
if response.status_code == 204:
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
message='Item deleted successfully',
|
message='Item deleted successfully',
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
response.status_code,
|
response.status_code,
|
||||||
headers=response.headers,
|
raw=response)
|
||||||
responseText=response.text)
|
|
||||||
|
|
||||||
# record methods
|
# record methods
|
||||||
|
|
||||||
@@ -818,13 +760,8 @@ class OnspringClient:
|
|||||||
|
|
||||||
endpoint = GetRecordsByAppIdEndpoint(self.baseUrl, getRecordsByAppRequest.appId)
|
endpoint = GetRecordsByAppIdEndpoint(self.baseUrl, getRecordsByAppRequest.appId)
|
||||||
|
|
||||||
# use request object as key-value pairs for params
|
|
||||||
params = getRecordsByAppRequest.__dict__
|
params = getRecordsByAppRequest.__dict__
|
||||||
|
|
||||||
# remove appId from params
|
|
||||||
del params['appId']
|
del params['appId']
|
||||||
|
|
||||||
# convert list of fieldIds to string of comma separated values
|
|
||||||
params['fieldIds'] = ",".join([str(i) for i in params['fieldIds']])
|
params['fieldIds'] = ",".join([str(i) for i in params['fieldIds']])
|
||||||
|
|
||||||
response = requests.request(
|
response = requests.request(
|
||||||
@@ -833,6 +770,29 @@ class OnspringClient:
|
|||||||
headers=self.headers,
|
headers=self.headers,
|
||||||
params=params)
|
params=params)
|
||||||
|
|
||||||
|
if response.status_code == 400:
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message='Invalid paging information/size of the data requested was too large.',
|
||||||
|
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:
|
if response.status_code == 200:
|
||||||
|
|
||||||
jsonResponse = dict(response.json())
|
jsonResponse = dict(response.json())
|
||||||
@@ -847,17 +807,17 @@ class OnspringClient:
|
|||||||
|
|
||||||
record = Record(
|
record = Record(
|
||||||
item.get('appId'),
|
item.get('appId'),
|
||||||
item.get('recordId'),
|
fields,
|
||||||
fields)
|
item.get('recordId'))
|
||||||
|
|
||||||
for field in item.get('fieldData'):
|
for field in item.get('fieldData'):
|
||||||
|
|
||||||
field = dict(field)
|
field = dict(field)
|
||||||
|
|
||||||
field = RecordFieldValue(
|
field = RecordFieldValue(
|
||||||
field.get('type'),
|
|
||||||
field.get('fieldId'),
|
field.get('fieldId'),
|
||||||
field.get('value'))
|
field.get('value'),
|
||||||
|
field.get('type'))
|
||||||
|
|
||||||
fields.append(field)
|
fields.append(field)
|
||||||
|
|
||||||
@@ -865,7 +825,293 @@ class OnspringClient:
|
|||||||
|
|
||||||
records.append(record)
|
records.append(record)
|
||||||
|
|
||||||
data = GetRecordsByAppResponse(
|
data = GetRecordsResponse(
|
||||||
|
jsonResponse.get('pageNumber'),
|
||||||
|
jsonResponse.get('pageSize'),
|
||||||
|
jsonResponse.get('totalPages'),
|
||||||
|
jsonResponse.get('totalRecords'),
|
||||||
|
records)
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
data,
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
def GetRecordById(self, getRecordByIdRequest: GetRecordByIdRequest):
|
||||||
|
|
||||||
|
endpoint = GetRecordByIdEndpoint(self.baseUrl, getRecordByIdRequest.appId, getRecordByIdRequest.recordId)
|
||||||
|
|
||||||
|
params = getRecordByIdRequest.__dict__
|
||||||
|
del params['appId']
|
||||||
|
del params['recordId']
|
||||||
|
params['fieldIds'] = ",".join([str(i) for i in params['fieldIds']])
|
||||||
|
|
||||||
|
response = requests.request(
|
||||||
|
'GET',
|
||||||
|
endpoint,
|
||||||
|
headers=self.headers,
|
||||||
|
params=params)
|
||||||
|
|
||||||
|
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='Record could not be found',
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
|
||||||
|
jsonResponse = dict(response.json())
|
||||||
|
|
||||||
|
fields = []
|
||||||
|
|
||||||
|
for field in jsonResponse.get('fieldData'):
|
||||||
|
|
||||||
|
field = dict(field)
|
||||||
|
|
||||||
|
field = RecordFieldValue(
|
||||||
|
field.get('fieldId'),
|
||||||
|
field.get('value'),
|
||||||
|
field.get('type'))
|
||||||
|
|
||||||
|
fields.append(field)
|
||||||
|
|
||||||
|
data = Record(
|
||||||
|
jsonResponse.get('appId'),
|
||||||
|
fields,
|
||||||
|
jsonResponse.get('recordId'))
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
data,
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
def DeleteRecordById(self, appId: int, recordId: int):
|
||||||
|
|
||||||
|
endpoint = DeleteRecordByIdEndpoint(self.baseUrl, appId, recordId)
|
||||||
|
|
||||||
|
response = requests.request(
|
||||||
|
'DELETE',
|
||||||
|
endpoint,
|
||||||
|
headers=self.headers)
|
||||||
|
|
||||||
|
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='Record could not be found',
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
if response.status_code == 204:
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message='Record deleted successfully',
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
def GetRecordsByIds(self, getBatchRecordsRequest: GetBatchRecordsRequest):
|
||||||
|
|
||||||
|
endpoint = GetRecordsByIdsEndpoint(self.baseUrl)
|
||||||
|
|
||||||
|
self.headers['Content-Type'] = 'application/json'
|
||||||
|
|
||||||
|
requestData = json.dumps(getBatchRecordsRequest.__dict__)
|
||||||
|
|
||||||
|
response = requests.request(
|
||||||
|
'POST',
|
||||||
|
endpoint,
|
||||||
|
headers=self.headers,
|
||||||
|
data=requestData)
|
||||||
|
|
||||||
|
if response.status_code == 400:
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message='Batch request is invalid/size of the data requested was too large.',
|
||||||
|
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:
|
||||||
|
|
||||||
|
jsonResponse = dict(response.json())
|
||||||
|
|
||||||
|
records = []
|
||||||
|
|
||||||
|
for item in jsonResponse.get('items'):
|
||||||
|
|
||||||
|
item = dict(item)
|
||||||
|
|
||||||
|
fields = []
|
||||||
|
|
||||||
|
record = Record(
|
||||||
|
item.get('appId'),
|
||||||
|
fields,
|
||||||
|
item.get('recordId'),)
|
||||||
|
|
||||||
|
for field in item.get('fieldData'):
|
||||||
|
|
||||||
|
field = dict(field)
|
||||||
|
|
||||||
|
field = RecordFieldValue(
|
||||||
|
field.get('fieldId'),
|
||||||
|
field.get('value'),
|
||||||
|
field.get('type'))
|
||||||
|
|
||||||
|
fields.append(field)
|
||||||
|
|
||||||
|
record.fields = fields
|
||||||
|
|
||||||
|
records.append(record)
|
||||||
|
|
||||||
|
data = GetBatchRecordsResponse(
|
||||||
|
jsonResponse.get('count'),
|
||||||
|
records)
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
data,
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
raw=response)
|
||||||
|
|
||||||
|
def QueryRecords(self, queryRecordsRequest: QueryRecordsRequest):
|
||||||
|
|
||||||
|
endpoint = QueryRecordsEndpoint(self.baseUrl)
|
||||||
|
|
||||||
|
self.headers['Content-Type'] = 'application/json'
|
||||||
|
|
||||||
|
requestData = queryRecordsRequest.__dict__
|
||||||
|
|
||||||
|
params = requestData.get('pagingRequest').__dict__
|
||||||
|
|
||||||
|
del requestData['pagingRequest']
|
||||||
|
|
||||||
|
requestData = json.dumps(requestData)
|
||||||
|
|
||||||
|
response = requests.request(
|
||||||
|
'POST',
|
||||||
|
endpoint,
|
||||||
|
headers=self.headers,
|
||||||
|
data=requestData,
|
||||||
|
params=params)
|
||||||
|
|
||||||
|
if response.status_code == 400:
|
||||||
|
|
||||||
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
message='Query request is invalid/size of the data requested was too large.',
|
||||||
|
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:
|
||||||
|
|
||||||
|
jsonResponse = dict(response.json())
|
||||||
|
|
||||||
|
records = []
|
||||||
|
|
||||||
|
for item in jsonResponse.get('items'):
|
||||||
|
|
||||||
|
item = dict(item)
|
||||||
|
|
||||||
|
fields = []
|
||||||
|
|
||||||
|
record = Record(
|
||||||
|
item.get('appId'),
|
||||||
|
fields,
|
||||||
|
item.get('recordId'))
|
||||||
|
|
||||||
|
for field in item.get('fieldData'):
|
||||||
|
|
||||||
|
field = dict(field)
|
||||||
|
|
||||||
|
field = RecordFieldValue(
|
||||||
|
field.get('fieldId'),
|
||||||
|
field.get('value'),
|
||||||
|
field.get('type'))
|
||||||
|
|
||||||
|
fields.append(field)
|
||||||
|
|
||||||
|
record.fields = fields
|
||||||
|
|
||||||
|
records.append(record)
|
||||||
|
|
||||||
|
data = GetRecordsResponse(
|
||||||
jsonResponse.get('pageNumber'),
|
jsonResponse.get('pageNumber'),
|
||||||
jsonResponse.get('pageSize'),
|
jsonResponse.get('pageSize'),
|
||||||
jsonResponse.get('totalPages'),
|
jsonResponse.get('totalPages'),
|
||||||
@@ -878,35 +1124,34 @@ class OnspringClient:
|
|||||||
headers=response.headers,
|
headers=response.headers,
|
||||||
responseText=response.text)
|
responseText=response.text)
|
||||||
|
|
||||||
def GetRecordById(self, appId: int, recordId: int):
|
return ApiResponse(
|
||||||
|
response.status_code,
|
||||||
|
raw=response)
|
||||||
|
|
||||||
endpoint = GetRecordByIdEndpoint(self.baseUrl, appId, recordId)
|
def AddOrUpdateRecord(self, record: Record):
|
||||||
|
|
||||||
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)
|
endpoint = AddOrUpdateRecordEndpoint(self.baseUrl)
|
||||||
|
|
||||||
return
|
self.headers['Content-Type'] = 'application/json'
|
||||||
|
|
||||||
|
dictFields = []
|
||||||
|
|
||||||
|
for field in record.fields:
|
||||||
|
field = field.__dict__
|
||||||
|
del field['type']
|
||||||
|
dictFields.append(field)
|
||||||
|
|
||||||
|
record.fields = dictFields
|
||||||
|
|
||||||
|
requestData = json.dumps(record.__dict__)
|
||||||
|
|
||||||
|
response = requests.request(
|
||||||
|
'PUT',
|
||||||
|
endpoint,
|
||||||
|
headers=self.headers,
|
||||||
|
data=requestData)
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
def DeleteRecordsByIds(self):
|
def DeleteRecordsByIds(self):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user