feat: implement getRecordsByAppId method

This commit is contained in:
Stevan Freeborn
2023-02-11 00:16:33 -06:00
parent a874f8a6df
commit 75349b24c0
2 changed files with 62 additions and 3 deletions
+34
View File
@@ -12,6 +12,7 @@ import { FileInfo } from './FileInfo';
import { FormulaField } from './FormulaField';
import { GetPagedAppsResponse } from './GetPagedAppsResponse';
import { GetPagedFieldsResponse } from './GetPagedFieldsResponse';
import { GetPagedRecordsResponse } from './GetPagedRecordsResponse';
import { GetPagedReportsResponse } from './GetPagedReportsResponse';
import { ListField } from './ListField';
import { ListItemResponse } from './ListItemResponse';
@@ -330,6 +331,39 @@ export class ApiResponse<T> {
);
}
/**
* @method asGetPagedRecordsResponseType - Converts the ApiResponse to an ApiResponse<GetPagedRecordsResponse>.
* @returns {ApiResponse<GetPagedRecordsResponse>} - An ApiResponse<GetPagedRecordsResponse>.
*/
public asGetPagedRecordsResponseType(): ApiResponse<GetPagedRecordsResponse> {
const apiResponse = this as ApiResponse<any>;
const records = apiResponse.data.items.map((item: any) => {
const recordValues = item.fieldData.map((fieldData: any) => {
return new RecordValue(
fieldData.type,
fieldData.fieldId,
fieldData.value
);
});
return new Record(item.appId, item.recordId, recordValues);
});
const getPagedRecordsResponse = new GetPagedRecordsResponse(
records,
apiResponse.data.pageNumber,
apiResponse.data.pageSize,
apiResponse.data.totalPages,
apiResponse.data.totalRecords
);
return new ApiResponse<GetPagedRecordsResponse>(
apiResponse.statusCode,
apiResponse.message,
getPagedRecordsResponse
);
}
/**
* @method asRecordType - Converts the ApiResponse to an ApiResponse<Record>.
* @returns {ApiResponse<Record>} - An ApiResponse<Record>.