feat: added saveRecord method

This commit is contained in:
StevanFreeborn
2023-02-13 20:21:28 -06:00
parent f07cd3043a
commit 757e773f9f
7 changed files with 385 additions and 3 deletions
+21 -1
View File
@@ -5,6 +5,7 @@ import { EndpointFactory } from './EndpointFactory';
import { ApiResponseFactory } from './ApiResponseFactory';
import { DataFormat } from '../enums/DataFormat';
import { ReportDataType } from '../enums/ReportDataType';
import { Record } from './Record';
import { type AxiosInstance, type AxiosRequestConfig } from 'axios';
import { type ApiResponse } from './ApiResponse';
import { type GetPagedAppsResponse } from './GetPagedAppsResponse';
@@ -20,12 +21,13 @@ import { type ListItemResponse } from './ListItemResponse';
import { type ListItemRequest } from './ListItemRequest';
import { type GetPagedReportsResponse } from './GetPagedReportsResponse';
import { type ReportData } from './ReportData';
import { type Record } from './Record';
import { type GetRecordRequest } from './GetRecordRequest';
import { type GetRecordsByAppIdRequest } from './GetRecordsByAppIdRequest';
import { type GetPagedRecordsResponse } from './GetPagedRecordsResponse';
import { type GetRecordsRequest } from './GetRecordsRequest';
import { type QueryRecordsRequest } from './QueryRecordsRequest';
import { type SaveRecordResponse } from './SaveRecordResponse';
import { type SaveRecordRequest } from './SaveRecordRequest';
/**
* @class OnspringClient - A client that can communicate with the Onspring API.
@@ -397,6 +399,24 @@ export class OnspringClient {
return apiResponse.asGetPagedRecordsResponseType();
}
public async saveRecord(
request: Record | SaveRecordRequest
): Promise<ApiResponse<SaveRecordResponse>> {
request =
request instanceof Record
? request.convertToSaveRecordRequest()
: request;
const endpoint = EndpointFactory.getAddOrUpdateRecordEndpoint();
const apiResponse = await this.put<any>(endpoint, request);
if (apiResponse.isSuccessful === false) {
return apiResponse;
}
return apiResponse.asSaveRecordResponseType();
}
/**
* @method deleteRecordById - Deletes a record by its id.
* @param {number} appId - The id of the app that the record belongs to.