feat: implement getRecordsByAppId method
This commit is contained in:
@@ -12,6 +12,7 @@ import { FileInfo } from './FileInfo';
|
|||||||
import { FormulaField } from './FormulaField';
|
import { FormulaField } from './FormulaField';
|
||||||
import { GetPagedAppsResponse } from './GetPagedAppsResponse';
|
import { GetPagedAppsResponse } from './GetPagedAppsResponse';
|
||||||
import { GetPagedFieldsResponse } from './GetPagedFieldsResponse';
|
import { GetPagedFieldsResponse } from './GetPagedFieldsResponse';
|
||||||
|
import { GetPagedRecordsResponse } from './GetPagedRecordsResponse';
|
||||||
import { GetPagedReportsResponse } from './GetPagedReportsResponse';
|
import { GetPagedReportsResponse } from './GetPagedReportsResponse';
|
||||||
import { ListField } from './ListField';
|
import { ListField } from './ListField';
|
||||||
import { ListItemResponse } from './ListItemResponse';
|
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>.
|
* @method asRecordType - Converts the ApiResponse to an ApiResponse<Record>.
|
||||||
* @returns {ApiResponse<Record>} - An ApiResponse<Record>.
|
* @returns {ApiResponse<Record>} - An ApiResponse<Record>.
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ import { type GetPagedReportsResponse } from './GetPagedReportsResponse';
|
|||||||
import { type ReportData } from './ReportData';
|
import { type ReportData } from './ReportData';
|
||||||
import { type Record } from './Record';
|
import { type Record } from './Record';
|
||||||
import { type GetRecordRequest } from './GetRecordRequest';
|
import { type GetRecordRequest } from './GetRecordRequest';
|
||||||
|
import { type GetRecordsByAppIdRequest } from './GetRecordsByAppIdRequest';
|
||||||
|
import { type GetPagedRecordsResponse } from './GetPagedRecordsResponse';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class OnspringClient - A client that can communicate with the Onspring API.
|
* @class OnspringClient - A client that can communicate with the Onspring API.
|
||||||
@@ -310,6 +312,30 @@ export class OnspringClient {
|
|||||||
return apiResponse;
|
return apiResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @method getRecordByAppId - Gets records by an app id.
|
||||||
|
* @param {GetRecordsByAppIdRequest} request - The request that will be used to get the records.
|
||||||
|
* @returns {Promise<ApiResponse<GetPagedRecordsResponse>>} - A promise that resolves to an ApiResponse of type GetPagedRecordsResponse.
|
||||||
|
*/
|
||||||
|
public async getRecordByAppId(
|
||||||
|
request: GetRecordsByAppIdRequest
|
||||||
|
): Promise<ApiResponse<GetPagedRecordsResponse>> {
|
||||||
|
const { appId, pagingRequest, fieldIds, dataFormat } = request;
|
||||||
|
const endpoint = EndpointFactory.getRecordsByAppIdEndpoint(appId);
|
||||||
|
const params = {
|
||||||
|
...pagingRequest,
|
||||||
|
fieldIds: fieldIds.join(','),
|
||||||
|
dataFormat,
|
||||||
|
};
|
||||||
|
const apiResponse = await this.get<any>(endpoint, { params });
|
||||||
|
|
||||||
|
if (apiResponse.isSuccessful === false) {
|
||||||
|
return apiResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
return apiResponse.asGetPagedRecordsResponseType();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @method getRecordById - Gets a record by its id.
|
* @method getRecordById - Gets a record by its id.
|
||||||
* @param {GetRecordRequest} request - The request that will be used to get the record.
|
* @param {GetRecordRequest} request - The request that will be used to get the record.
|
||||||
@@ -320,9 +346,8 @@ export class OnspringClient {
|
|||||||
): Promise<ApiResponse<Record>> {
|
): Promise<ApiResponse<Record>> {
|
||||||
const { appId, recordId, fieldIds, dataFormat } = request;
|
const { appId, recordId, fieldIds, dataFormat } = request;
|
||||||
const endpoint = EndpointFactory.getRecordByIdEndpoint(appId, recordId);
|
const endpoint = EndpointFactory.getRecordByIdEndpoint(appId, recordId);
|
||||||
const apiResponse = await this.get<any>(endpoint, {
|
const params = { fieldIds: fieldIds.join(','), dataFormat };
|
||||||
params: { fieldIds: fieldIds.join(','), dataFormat },
|
const apiResponse = await this.get<any>(endpoint, { params });
|
||||||
});
|
|
||||||
|
|
||||||
if (apiResponse.isSuccessful === false) {
|
if (apiResponse.isSuccessful === false) {
|
||||||
return apiResponse;
|
return apiResponse;
|
||||||
|
|||||||
Reference in New Issue
Block a user