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
+187 -216
View File
@@ -1,95 +1,14 @@
import json
import mimetypes import mimetypes
import os import os
import sys
from requests import request
from OnspringClient import OnspringClient from OnspringClient import OnspringClient
from configparser import ConfigParser
from Models import * from Models import *
from Enums import * from Enums import *
cfg = ConfigParser()
cfg.read('config.ini')
key = cfg['prod']['key']
url = cfg['prod']['url']
onspring = OnspringClient(url, key)
def main():
if not len(sys.argv) > 1:
print('No valid command given')
return
command = sys.argv[1].lower()
if command =='connect':
PrintCanConnect(onspring)
if command == 'getapps':
PrintGetApps(onspring)
if command == 'getappbyid':
PrintGetAppById(onspring, 195)
if command == 'getappsbyids':
PrintGetAppsByIds(onspring, [195, 240])
if command == 'savefile':
PrintSaveFile(
onspring,
'C:\\Users\\sfree\\OneDrive\\Desktop\\Test Attachment.txt',
60,
6989
)
if command == 'getrecordsbyappid':
PrintGetRecordsByAppId(onspring, 195)
return
if command == 'getrecordbyid':
PrintGetRecordById(onspring, 195, 3,dataFormat=DataFormat.Raw.name)
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 = [
StringFieldValue(6983, 'A New Test Task'),
StringFieldValue(6984, 'This is a test task.')
]
PrintAddOrUpdateRecord(onspring, 195, fields)
return
if command == 'updaterecord':
fields = [
StringFieldValue(6983, 'Updated'),
StringFieldValue(6984, 'Updated')
]
PrintAddOrUpdateRecord(onspring, 195, fields, 60)
return
print('No valid command given')
return
#connectivity #connectivity
def PrintCanConnect(client: OnspringClient): def PrintCanConnect(client: OnspringClient):
@@ -107,15 +26,11 @@ def PrintGetApps(client: OnspringClient):
print(f'Page Number: {response.data.pageNumber}') print(f'Page Number: {response.data.pageNumber}')
print(f'Total Pages: {response.data.totalPages}') print(f'Total Pages: {response.data.totalPages}')
print(f'Total Records: {response.data.totalRecords}') print(f'Total Records: {response.data.totalRecords}')
print('----')
for app in response.data.apps: for app in response.data.apps:
print(f'Id: {app.id}') print(f'Id: {app.id}')
print(f'Name: {app.name}') print(f'Name: {app.name}')
print(f'href: {app.href}') print(f'href: {app.href}')
print('--')
print('----')
def PrintGetAppById(client: OnspringClient, appId: int): def PrintGetAppById(client: OnspringClient, appId: int):
@@ -132,148 +47,59 @@ def PrintGetAppsByIds(client: OnspringClient, appIds: list[int]):
print(f'Status Code: {response.statusCode}') print(f'Status Code: {response.statusCode}')
print(f'Count: {response.data.count}') print(f'Count: {response.data.count}')
print('----')
for app in response.data.apps: for app in response.data.apps:
print(f'Id: {app.id}') print(f'Id: {app.id}')
print(f'Name: {app.name}') print(f'Name: {app.name}')
print(f'href: {app.href}') print(f'href: {app.href}')
print('--')
print('----') # fields
# records def PrintField(field: Field):
def PrintGetRecordsByAppId(client: OnspringClient, appId: int): print('Field:')
print(f' Id: {field.id}')
print(f' App Id: {field.appId}')
print(f' Name: {field.name}')
print(f' Type: {field.type}')
print(f' Status: {field.status}')
print(f' IsRequired: {field.isRequired}')
print(f' IsUnique: {field.isUnique}')
request = GetRecordsByAppRequest(appId, dataFormat=DataFormat.Raw.name) if field.type == 'Formula':
response = client.GetRecordsByAppId(request) print(f' Output Type: {field.outputType}')
if field.outputType == 'ListValue':
print(f' Multiplicity: {field.multiplicity}')
print(' Values:')
for value in field.values:
print(f' {value.AsString()}')
if field.type == 'List':
print(f' Multiplicity: {field.multiplicity}')
print(' Values:')
for value in field.values:
print(f' {value.AsString()}')
def PrintGetFieldById(client: OnspringClient, fieldId: int):
response = client.GetFieldById(fieldId)
print(f'Status Code: {response.statusCode}') 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: if response.isSuccessful:
print(f'Type: {field.type}') PrintField(response.data.field)
print(f'FieldId: {field.fieldId}') else:
print(f'Value: {field.GetResultValueString()}')
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: {field.GetResultValueString()}')
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}') 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: {field.GetResultValueString()}')
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: {field.GetResultValueString()}')
print('--')
print('----')
def PrintAddOrUpdateRecord(client: OnspringClient, appId: int, fields: list[RecordFieldValue], recordId: int=None):
record = Record(
appId,
fields,
recordId)
response = client.AddOrUpdateRecord(record)
print(f'Status Code: {response.statusCode}')
print(f'Id: {response.data.id}')
for warning in response.data.warnings:
print(f'Warning: {warning}')
# 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):
@@ -296,5 +122,150 @@ def PrintSaveFile(client: OnspringClient, filePath: str, recordId: int, fieldId:
print(f'Status Code: {response.statusCode}') print(f'Status Code: {response.statusCode}')
print(f'File Id: {response.data.id}') print(f'File Id: {response.data.id}')
if __name__ == "__main__": # records
main()
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}')
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: {field.GetResultValueString()}')
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(f'AppId: {response.data.appId}')
print(f'RecordId: {response.data.recordId}')
for field in response.data.fields:
print(f'Type: {field.type}')
print(f'FieldId: {field.fieldId}')
print(f'Value: {field.GetResultValueString()}')
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}')
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: {field.GetResultValueString()}')
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}')
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: {field.GetResultValueString()}')
def PrintAddOrUpdateRecord(client: OnspringClient, appId: int, fields: list[RecordFieldValue], recordId: int=None):
record = Record(
appId,
fields,
recordId)
response = client.AddOrUpdateRecord(record)
print(f'Status Code: {response.statusCode}')
print(f'Id: {response.data.id}')
for warning in response.data.warnings:
print(f'Warning: {warning}')
def PrintDeleteRecordsByIds(client: OnspringClient, appId: int, recordIds: list[int]):
request = DeleteBatchRecordsRequest(appId, recordIds)
response = client.DeleteRecordsByIds(request)
print(f'Status Code: {response.statusCode}')
print(f'Message: {response.message}')
# reports
def PrintGetReportById(client: OnspringClient, reportId: int, apiDataFormat: str=DataFormat.Raw.name, dataFormat: str=ReportDataType.ReportData.name):
request = GetReportByIdRequest(reportId, apiDataFormat, dataFormat)
response = client.GetReportById(request)
print(f'Status Code: {response.statusCode}')
print('Columns:')
print(f'{", ".join(response.data.columns)}')
print('Rows:')
for row in response.data.rows:
print(f'Record Id {row.recordId}: {", ".join([str(cell) for cell in row.cells])}')
def PrintGetReportsByAppId(client: OnspringClient, appId: int, pagingRequest: PagingRequest=PagingRequest(1,50)):
response = client.GetReportsByAppId(appId, pagingRequest)
print(f'Status Code: {response.statusCode}')
print(f'App Id: {appId}')
print('Reports:')
for report in response.data.reports:
print(f' Id: {report.id}')
print(f' Name: {report.name}')
print(f' Description: {report.description}')
+142
View File
@@ -0,0 +1,142 @@
import sys
from OnspringClient import OnspringClient
from configparser import ConfigParser
from Models import *
from Enums import *
from Commands import *
cfg = ConfigParser()
cfg.read('config.ini')
key = cfg['prod']['key']
url = cfg['prod']['url']
onspring = OnspringClient(url, key)
def main():
argsLength = len(sys.argv)
if not argsLength > 1:
print('No valid command given')
return
command = sys.argv[1].lower()
if command =='connect':
PrintCanConnect(onspring)
if command == 'getapps':
PrintGetApps(onspring)
if command == 'getappbyid':
PrintGetAppById(onspring, 195)
if command == 'getappsbyids':
PrintGetAppsByIds(onspring, [195, 240])
if command == 'getfieldbyid':
PrintGetFieldById(onspring, 9686 )
return
if command == 'savefile':
PrintSaveFile(
onspring,
'C:\\Users\\sfree\\OneDrive\\Desktop\\Test Attachment.txt',
60,
6989
)
if command == 'getrecordsbyappid':
PrintGetRecordsByAppId(onspring, 195)
return
if command == 'getrecordbyid':
PrintGetRecordById(onspring, 195, 3,dataFormat=DataFormat.Raw.name)
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 = [
StringFieldValue(6983, 'A New Test Task'),
StringFieldValue(6984, 'This is a test task.')
]
PrintAddOrUpdateRecord(onspring, 195, fields)
return
if command == 'updaterecord':
fields = [
StringFieldValue(6983, 'Updated'),
StringFieldValue(6984, 'Updated')
]
PrintAddOrUpdateRecord(onspring, 195, fields, 60)
return
if command == 'deleterecordsbyids':
appId = sys.argv[2]
ids = sys.argv[3].split(',')
recordIds = [int(id) for id in ids]
PrintDeleteRecordsByIds(onspring, appId, recordIds)
return
if command == 'getreportbyid':
if not argsLength > 2:
print('Please provide report id value')
return
reportId = sys.argv[2]
if argsLength > 3:
apiDataFormat = sys.argv[3]
else:
apiDataFormat = DataFormat.Raw.name
if argsLength > 4:
dataType = sys.argv[4]
else:
dataType = ReportDataType.ReportData.name
PrintGetReportById(onspring, reportId, apiDataFormat, dataType)
return
if command == 'getreportsbyappid':
if not argsLength > 2:
print('Please provide app id value')
return
appId = sys.argv[2]
PrintGetReportsByAppId(onspring, appId)
return
print('No valid command given')
return
if __name__ == "__main__":
main()
+4
View File
@@ -4,6 +4,10 @@ class DataFormat(Enum):
Raw = 0 Raw = 0
Formatted = 1 Formatted = 1
class ReportDataType(Enum):
ReportData = 0
ChartData = 1
class ResultValueType(Enum): class ResultValueType(Enum):
String = 0 String = 0
Integer = 1 Integer = 1
+69 -2
View File
@@ -1,3 +1,4 @@
from audioop import mul
import datetime import datetime
import uuid import uuid
@@ -50,8 +51,37 @@ class GetAppsByIdsResponse:
# field specific # field specific
class ListValue:
def __init__(self, id: int, name: str, sortOrder: int, numericValue: Decimal, color: str):
self.id = id
self.name = name
self.sortOrder = sortOrder
if numericValue != None:
self.numericValue = Decimal(numericValue)
else:
self.numericValue = numericValue
self.color = color
def AsString(self):
return f'Id: {self.id}, Name: {self.name}, Value: {self.numericValue}, Sort Order: {self.sortOrder}, Color: {self.color}'
class Field: class Field:
def __init__(self, id: int, appId: int, name: str, type: str, status: str, isRequired: bool, isUnique: bool): def __init__(
self, id: int,
appId: int,
name: str,
type: str,
status: str,
isRequired: bool,
isUnique: bool,
listId: int=None,
values: list[ListValue]=None,
multiplicity: str=None,
outputType: str=None
):
self.id = id self.id = id
self.appId = appId self.appId = appId
self.name = name self.name = name
@@ -59,6 +89,10 @@ class Field:
self.status = status self.status = status
self.isRequired = isRequired self.isRequired = isRequired
self.isUnique = isUnique self.isUnique = isUnique
self.listId = listId
self.values = values
self.outputType = outputType
self.multiplicity = multiplicity
class GetFieldByIdResponse: class GetFieldByIdResponse:
def __init__(self, field: Field): def __init__(self, field: Field):
@@ -426,7 +460,7 @@ class AddOrUpdateRecordResponse:
class DeleteBatchRecordsRequest: class DeleteBatchRecordsRequest:
def __init__(self, appId: int, recordIds: list[int]): def __init__(self, appId: int, recordIds: list[int]):
self.id = id self.appId = appId
self.recordIds = recordIds self.recordIds = recordIds
# field types # field types
@@ -521,3 +555,36 @@ class ScoringGroupListValue(RecordFieldValue):
def __init__(self, fieldId: int, value: list[ScoringGroup]): def __init__(self, fieldId: int, value: list[ScoringGroup]):
self.type = ResultValueType.ScoringGroupList.name self.type = ResultValueType.ScoringGroupList.name
RecordFieldValue.__init__(self, fieldId, value, self.type) RecordFieldValue.__init__(self, fieldId, value, self.type)
# report specific
class GetReportByIdRequest:
def __init__(self, reportId: int, apiDataFormat: str=DataFormat.Raw.name, dataType: str=ReportDataType.ReportData.name):
self.reportId = reportId
self.apiDataFormat = apiDataFormat
self.dataType = dataType
class Row:
def __init__(self, recordId: int, cells: list[str]):
self.recordId = recordId
self.cells = cells
class GetReportByIdResponse:
def __init__(self, columns: list[str], rows: list[Row]):
self.columns = columns
self.rows = rows
class Report:
def __init__(self, appId: int, id: int, name: str, description: str):
self.appId = appId
self.id = id
self.name = name
self.description = description
class GetReportsByAppIdResponse:
def __init__(self, pageNumber: int, pageSize: int, totalPages: int, totalRecords: int, reports: list[Report]):
self.pageNumber = pageNumber
self.pageSize = pageSize
self.totalPages = totalPages
self.totalRecords = totalRecords
self.reports = reports
+207 -8
View File
@@ -235,6 +235,25 @@ class OnspringClient:
jsonResponse = dict(response.json()) 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( field = Field(
jsonResponse.get('id'), jsonResponse.get('id'),
jsonResponse.get('appId'), jsonResponse.get('appId'),
@@ -242,7 +261,11 @@ class OnspringClient:
jsonResponse.get('type'), jsonResponse.get('type'),
jsonResponse.get('status'), jsonResponse.get('status'),
jsonResponse.get('isRequired'), jsonResponse.get('isRequired'),
jsonResponse.get('isUnique')) jsonResponse.get('isUnique'),
jsonResponse.get("listId"),
listValues,
jsonResponse.get('multiplicity'),
jsonResponse.get('outputType'))
data = GetFieldByIdResponse(field) data = GetFieldByIdResponse(field)
@@ -1193,22 +1216,198 @@ class OnspringClient:
response.status_code, response.status_code,
raw=response) raw=response)
def DeleteRecordsByIds(self): def DeleteRecordsByIds(self, deleteBatchRecordsRequest: DeleteBatchRecordsRequest):
endpoint = DeleteRecordsByIds(self.baseUrl) 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 # 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) 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)