UNPKG

xero-node

Version:

Xero NodeJS OAuth 2.0 client for xero-node

811 lines 1.19 MB
"use strict"; /** * Xero Accounting API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: 12.0.0 * Contact: api@xero.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AccountingApi = exports.AccountingApiApiKeys = void 0; const models_1 = require("../model/accounting/models"); const ApiError_1 = require("../../model/ApiError"); const axios_1 = __importDefault(require("axios")); const stream_1 = require("stream"); const models_2 = require("../model/accounting/models"); let defaultBasePath = 'https://api.xero.com/api.xro/2.0'; // =============================================== // This file is autogenerated - Please do not edit // =============================================== var AccountingApiApiKeys; (function (AccountingApiApiKeys) { })(AccountingApiApiKeys || (exports.AccountingApiApiKeys = AccountingApiApiKeys = {})); class AccountingApi { constructor(basePathOrUsername, password, basePath) { this._basePath = defaultBasePath; this.defaultHeaders = { 'user-agent': 'xero-node-15.0.0' }; this._useQuerystring = false; this.binaryHeaders = {}; this.authentications = { 'default': new models_1.VoidAuth(), 'OAuth2': new models_2.OAuth(), }; if (password) { if (basePath) { this.basePath = basePath; } } else { if (basePathOrUsername) { this.basePath = basePathOrUsername; } } } set useQuerystring(value) { this._useQuerystring = value; } set basePath(basePath) { this._basePath = basePath; } get basePath() { return this._basePath; } setDefaultAuthentication(auth) { this.authentications.default = auth; } setApiKey(key, value) { this.authentications[AccountingApiApiKeys[key]].apiKey = value; } set accessToken(token) { this.authentications.OAuth2.accessToken = token; } /** * * @summary Creates a new chart of accounts * @param xeroTenantId Xero identifier for Tenant * @param account Account object in body of request * @param idempotencyKey This allows you to safely retry requests without the risk of duplicate processing. 128 character max. */ createAccount(xeroTenantId_1, account_1, idempotencyKey_1) { return __awaiter(this, arguments, void 0, function* (xeroTenantId, account, idempotencyKey, options = { headers: {} }) { const localVarPath = this.basePath + '/Accounts'; let localVarQueryParameters = {}; let localVarHeaderParams = Object.assign({}, this.defaultHeaders); let localVarFormParams = {}; let acceptHeadersFromSpec = [ "application/json" ]; const isBufferType = acceptHeadersFromSpec.includes("application/pdf") || acceptHeadersFromSpec.includes("application/octet-stream") || acceptHeadersFromSpec.includes("application/jpg"); const responseTypeOption = isBufferType ? "arraybuffer" : "json"; // verify required parameter 'xeroTenantId' is not null or undefined if (xeroTenantId === null || xeroTenantId === undefined) { throw new Error('Required parameter xeroTenantId was null or undefined when calling createAccount.'); } // verify required parameter 'account' is not null or undefined if (account === null || account === undefined) { throw new Error('Required parameter account was null or undefined when calling createAccount.'); } localVarHeaderParams['xero-tenant-id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string"); localVarHeaderParams['Idempotency-Key'] = models_1.ObjectSerializer.serialize(idempotencyKey, "string"); localVarHeaderParams['Accept'] = acceptHeadersFromSpec.join(); Object.assign(localVarHeaderParams, options.headers); let localVarUseFormData = false; let localVarRequestOptions = { method: 'PUT', params: localVarQueryParameters, headers: localVarHeaderParams, url: localVarPath, responseType: responseTypeOption, data: models_1.ObjectSerializer.serialize(account, "Account"), }; let authenticationPromise = Promise.resolve(); authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions)); authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions)); return authenticationPromise.then(() => { if (Object.keys(localVarFormParams).length) { if (localVarUseFormData) { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'Content-Type': 'multipart/form-data' }); } else { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'content-type': 'application/x-www-form-urlencoded' }); } } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let body = null; try { const response = yield (0, axios_1.default)(localVarRequestOptions); body = models_1.ObjectSerializer.deserialize(response.data, "Accounts"); if (response.status && response.status >= 200 && response.status <= 299) { resolve({ response: response, body: body }); } else { reject({ response: response, body: body }); } } catch (error) { const errorResponse = new ApiError_1.ApiError(error); reject(JSON.stringify(errorResponse.generateError())); } })); }); }); } /** * * @summary Creates an attachment on a specific account * @param xeroTenantId Xero identifier for Tenant * @param accountID Unique identifier for Account object * @param fileName Name of the attachment * @param body Byte array of file in body of request * @param idempotencyKey This allows you to safely retry requests without the risk of duplicate processing. 128 character max. */ createAccountAttachmentByFileName(xeroTenantId_1, accountID_1, fileName_1, body_1, idempotencyKey_1) { return __awaiter(this, arguments, void 0, function* (xeroTenantId, accountID, fileName, body, idempotencyKey, options = { headers: {} }) { const localVarPath = this.basePath + '/Accounts/{AccountID}/Attachments/{FileName}' .replace('{' + 'AccountID' + '}', encodeURIComponent(String(accountID))) .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName))); let localVarQueryParameters = {}; let localVarHeaderParams = Object.assign({}, this.defaultHeaders); let localVarFormParams = {}; let acceptHeadersFromSpec = [ "application/json" ]; const isBufferType = acceptHeadersFromSpec.includes("application/pdf") || acceptHeadersFromSpec.includes("application/octet-stream") || acceptHeadersFromSpec.includes("application/jpg"); const responseTypeOption = isBufferType ? "arraybuffer" : "json"; // verify required parameter 'xeroTenantId' is not null or undefined if (xeroTenantId === null || xeroTenantId === undefined) { throw new Error('Required parameter xeroTenantId was null or undefined when calling createAccountAttachmentByFileName.'); } // verify required parameter 'accountID' is not null or undefined if (accountID === null || accountID === undefined) { throw new Error('Required parameter accountID was null or undefined when calling createAccountAttachmentByFileName.'); } // verify required parameter 'fileName' is not null or undefined if (fileName === null || fileName === undefined) { throw new Error('Required parameter fileName was null or undefined when calling createAccountAttachmentByFileName.'); } // verify required parameter 'body' is not null or undefined if (body === null || body === undefined) { throw new Error('Required parameter body was null or undefined when calling createAccountAttachmentByFileName.'); } this.binaryHeaders = { 'Accept': 'application/json' }; Object.assign(localVarHeaderParams, this.binaryHeaders); localVarHeaderParams['xero-tenant-id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string"); localVarHeaderParams['Idempotency-Key'] = models_1.ObjectSerializer.serialize(idempotencyKey, "string"); localVarHeaderParams['Accept'] = acceptHeadersFromSpec.join(); Object.assign(localVarHeaderParams, options.headers); let localVarUseFormData = false; let localVarRequestOptions = { method: 'PUT', params: localVarQueryParameters, headers: localVarHeaderParams, url: localVarPath, responseType: responseTypeOption, data: models_1.ObjectSerializer.serialize(body, "string"), }; let authenticationPromise = Promise.resolve(); authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions)); authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions)); return authenticationPromise.then(() => { if (Object.keys(localVarFormParams).length) { if (localVarUseFormData) { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'Content-Type': 'multipart/form-data' }); } else { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'content-type': 'application/x-www-form-urlencoded' }); } } }).then(() => { // Reads file stream as chunks so we can put it in body of request. // This collects the whole file into memory, which is why we do it _after_ authentication. return new Promise((resolve, reject) => { let bodyStream; bodyStream = Buffer.isBuffer(body) ? stream_1.Readable.from(body) : body; const fileContents = []; bodyStream.on('data', (chunk) => { fileContents.push(chunk); }); bodyStream.on('end', () => { resolve(fileContents); }); bodyStream.on('error', (err) => { reject(err); }); }); }).then((fileContents) => { const file = Buffer.concat(fileContents); localVarRequestOptions.data = file; return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let body = null; try { const response = yield (0, axios_1.default)(localVarRequestOptions); body = models_1.ObjectSerializer.deserialize(response.data, "Attachments"); if (response.status && response.status >= 200 && response.status <= 299) { resolve({ response: response, body: body }); } else { reject({ response: response, body: body }); } } catch (error) { const errorResponse = new ApiError_1.ApiError(error); reject(JSON.stringify(errorResponse.generateError())); } })); }); }); } /** * * @summary Creates an attachment for a specific bank transaction by filename * @param xeroTenantId Xero identifier for Tenant * @param bankTransactionID Xero generated unique identifier for a bank transaction * @param fileName Name of the attachment * @param body Byte array of file in body of request * @param idempotencyKey This allows you to safely retry requests without the risk of duplicate processing. 128 character max. */ createBankTransactionAttachmentByFileName(xeroTenantId_1, bankTransactionID_1, fileName_1, body_1, idempotencyKey_1) { return __awaiter(this, arguments, void 0, function* (xeroTenantId, bankTransactionID, fileName, body, idempotencyKey, options = { headers: {} }) { const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}/Attachments/{FileName}' .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID))) .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName))); let localVarQueryParameters = {}; let localVarHeaderParams = Object.assign({}, this.defaultHeaders); let localVarFormParams = {}; let acceptHeadersFromSpec = [ "application/json" ]; const isBufferType = acceptHeadersFromSpec.includes("application/pdf") || acceptHeadersFromSpec.includes("application/octet-stream") || acceptHeadersFromSpec.includes("application/jpg"); const responseTypeOption = isBufferType ? "arraybuffer" : "json"; // verify required parameter 'xeroTenantId' is not null or undefined if (xeroTenantId === null || xeroTenantId === undefined) { throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransactionAttachmentByFileName.'); } // verify required parameter 'bankTransactionID' is not null or undefined if (bankTransactionID === null || bankTransactionID === undefined) { throw new Error('Required parameter bankTransactionID was null or undefined when calling createBankTransactionAttachmentByFileName.'); } // verify required parameter 'fileName' is not null or undefined if (fileName === null || fileName === undefined) { throw new Error('Required parameter fileName was null or undefined when calling createBankTransactionAttachmentByFileName.'); } // verify required parameter 'body' is not null or undefined if (body === null || body === undefined) { throw new Error('Required parameter body was null or undefined when calling createBankTransactionAttachmentByFileName.'); } this.binaryHeaders = { 'Accept': 'application/json' }; Object.assign(localVarHeaderParams, this.binaryHeaders); localVarHeaderParams['xero-tenant-id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string"); localVarHeaderParams['Idempotency-Key'] = models_1.ObjectSerializer.serialize(idempotencyKey, "string"); localVarHeaderParams['Accept'] = acceptHeadersFromSpec.join(); Object.assign(localVarHeaderParams, options.headers); let localVarUseFormData = false; let localVarRequestOptions = { method: 'PUT', params: localVarQueryParameters, headers: localVarHeaderParams, url: localVarPath, responseType: responseTypeOption, data: models_1.ObjectSerializer.serialize(body, "string"), }; let authenticationPromise = Promise.resolve(); authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions)); authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions)); return authenticationPromise.then(() => { if (Object.keys(localVarFormParams).length) { if (localVarUseFormData) { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'Content-Type': 'multipart/form-data' }); } else { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'content-type': 'application/x-www-form-urlencoded' }); } } }).then(() => { // Reads file stream as chunks so we can put it in body of request. // This collects the whole file into memory, which is why we do it _after_ authentication. return new Promise((resolve, reject) => { let bodyStream; bodyStream = Buffer.isBuffer(body) ? stream_1.Readable.from(body) : body; const fileContents = []; bodyStream.on('data', (chunk) => { fileContents.push(chunk); }); bodyStream.on('end', () => { resolve(fileContents); }); bodyStream.on('error', (err) => { reject(err); }); }); }).then((fileContents) => { const file = Buffer.concat(fileContents); localVarRequestOptions.data = file; return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let body = null; try { const response = yield (0, axios_1.default)(localVarRequestOptions); body = models_1.ObjectSerializer.deserialize(response.data, "Attachments"); if (response.status && response.status >= 200 && response.status <= 299) { resolve({ response: response, body: body }); } else { reject({ response: response, body: body }); } } catch (error) { const errorResponse = new ApiError_1.ApiError(error); reject(JSON.stringify(errorResponse.generateError())); } })); }); }); } /** * * @summary Creates a history record for a specific bank transactions * @param xeroTenantId Xero identifier for Tenant * @param bankTransactionID Xero generated unique identifier for a bank transaction * @param historyRecords HistoryRecords containing an array of HistoryRecord objects in body of request * @param idempotencyKey This allows you to safely retry requests without the risk of duplicate processing. 128 character max. */ createBankTransactionHistoryRecord(xeroTenantId_1, bankTransactionID_1, historyRecords_1, idempotencyKey_1) { return __awaiter(this, arguments, void 0, function* (xeroTenantId, bankTransactionID, historyRecords, idempotencyKey, options = { headers: {} }) { const localVarPath = this.basePath + '/BankTransactions/{BankTransactionID}/History' .replace('{' + 'BankTransactionID' + '}', encodeURIComponent(String(bankTransactionID))); let localVarQueryParameters = {}; let localVarHeaderParams = Object.assign({}, this.defaultHeaders); let localVarFormParams = {}; let acceptHeadersFromSpec = [ "application/json" ]; const isBufferType = acceptHeadersFromSpec.includes("application/pdf") || acceptHeadersFromSpec.includes("application/octet-stream") || acceptHeadersFromSpec.includes("application/jpg"); const responseTypeOption = isBufferType ? "arraybuffer" : "json"; // verify required parameter 'xeroTenantId' is not null or undefined if (xeroTenantId === null || xeroTenantId === undefined) { throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransactionHistoryRecord.'); } // verify required parameter 'bankTransactionID' is not null or undefined if (bankTransactionID === null || bankTransactionID === undefined) { throw new Error('Required parameter bankTransactionID was null or undefined when calling createBankTransactionHistoryRecord.'); } // verify required parameter 'historyRecords' is not null or undefined if (historyRecords === null || historyRecords === undefined) { throw new Error('Required parameter historyRecords was null or undefined when calling createBankTransactionHistoryRecord.'); } localVarHeaderParams['xero-tenant-id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string"); localVarHeaderParams['Idempotency-Key'] = models_1.ObjectSerializer.serialize(idempotencyKey, "string"); localVarHeaderParams['Accept'] = acceptHeadersFromSpec.join(); Object.assign(localVarHeaderParams, options.headers); let localVarUseFormData = false; let localVarRequestOptions = { method: 'PUT', params: localVarQueryParameters, headers: localVarHeaderParams, url: localVarPath, responseType: responseTypeOption, data: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords"), }; let authenticationPromise = Promise.resolve(); authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions)); authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions)); return authenticationPromise.then(() => { if (Object.keys(localVarFormParams).length) { if (localVarUseFormData) { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'Content-Type': 'multipart/form-data' }); } else { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'content-type': 'application/x-www-form-urlencoded' }); } } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let body = null; try { const response = yield (0, axios_1.default)(localVarRequestOptions); body = models_1.ObjectSerializer.deserialize(response.data, "HistoryRecords"); if (response.status && response.status >= 200 && response.status <= 299) { resolve({ response: response, body: body }); } else { reject({ response: response, body: body }); } } catch (error) { const errorResponse = new ApiError_1.ApiError(error); reject(JSON.stringify(errorResponse.generateError())); } })); }); }); } /** * * @summary Creates one or more spent or received money transaction * @param xeroTenantId Xero identifier for Tenant * @param bankTransactions BankTransactions with an array of BankTransaction objects in body of request * @param summarizeErrors If false return 200 OK and mix of successfully created objects and any with validation errors * @param unitdp e.g. unitdp&#x3D;4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts * @param idempotencyKey This allows you to safely retry requests without the risk of duplicate processing. 128 character max. */ createBankTransactions(xeroTenantId_1, bankTransactions_1, summarizeErrors_1, unitdp_1, idempotencyKey_1) { return __awaiter(this, arguments, void 0, function* (xeroTenantId, bankTransactions, summarizeErrors, unitdp, idempotencyKey, options = { headers: {} }) { const localVarPath = this.basePath + '/BankTransactions'; let localVarQueryParameters = {}; let localVarHeaderParams = Object.assign({}, this.defaultHeaders); let localVarFormParams = {}; let acceptHeadersFromSpec = [ "application/json" ]; const isBufferType = acceptHeadersFromSpec.includes("application/pdf") || acceptHeadersFromSpec.includes("application/octet-stream") || acceptHeadersFromSpec.includes("application/jpg"); const responseTypeOption = isBufferType ? "arraybuffer" : "json"; // verify required parameter 'xeroTenantId' is not null or undefined if (xeroTenantId === null || xeroTenantId === undefined) { throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransactions.'); } // verify required parameter 'bankTransactions' is not null or undefined if (bankTransactions === null || bankTransactions === undefined) { throw new Error('Required parameter bankTransactions was null or undefined when calling createBankTransactions.'); } if (summarizeErrors !== undefined) { localVarQueryParameters['summarizeErrors'] = models_1.ObjectSerializer.serialize(summarizeErrors, "boolean"); } if (unitdp !== undefined) { localVarQueryParameters['unitdp'] = models_1.ObjectSerializer.serialize(unitdp, "number"); } localVarHeaderParams['xero-tenant-id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string"); localVarHeaderParams['Idempotency-Key'] = models_1.ObjectSerializer.serialize(idempotencyKey, "string"); localVarHeaderParams['Accept'] = acceptHeadersFromSpec.join(); Object.assign(localVarHeaderParams, options.headers); let localVarUseFormData = false; let localVarRequestOptions = { method: 'PUT', params: localVarQueryParameters, headers: localVarHeaderParams, url: localVarPath, responseType: responseTypeOption, data: models_1.ObjectSerializer.serialize(bankTransactions, "BankTransactions"), }; let authenticationPromise = Promise.resolve(); authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions)); authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions)); return authenticationPromise.then(() => { if (Object.keys(localVarFormParams).length) { if (localVarUseFormData) { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'Content-Type': 'multipart/form-data' }); } else { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'content-type': 'application/x-www-form-urlencoded' }); } } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let body = null; try { const response = yield (0, axios_1.default)(localVarRequestOptions); body = models_1.ObjectSerializer.deserialize(response.data, "BankTransactions"); if (response.status && response.status >= 200 && response.status <= 299) { resolve({ response: response, body: body }); } else { reject({ response: response, body: body }); } } catch (error) { const errorResponse = new ApiError_1.ApiError(error); reject(JSON.stringify(errorResponse.generateError())); } })); }); }); } /** * * @summary Creates a bank transfer * @param xeroTenantId Xero identifier for Tenant * @param bankTransfers BankTransfers with array of BankTransfer objects in request body * @param idempotencyKey This allows you to safely retry requests without the risk of duplicate processing. 128 character max. */ createBankTransfer(xeroTenantId_1, bankTransfers_1, idempotencyKey_1) { return __awaiter(this, arguments, void 0, function* (xeroTenantId, bankTransfers, idempotencyKey, options = { headers: {} }) { const localVarPath = this.basePath + '/BankTransfers'; let localVarQueryParameters = {}; let localVarHeaderParams = Object.assign({}, this.defaultHeaders); let localVarFormParams = {}; let acceptHeadersFromSpec = [ "application/json" ]; const isBufferType = acceptHeadersFromSpec.includes("application/pdf") || acceptHeadersFromSpec.includes("application/octet-stream") || acceptHeadersFromSpec.includes("application/jpg"); const responseTypeOption = isBufferType ? "arraybuffer" : "json"; // verify required parameter 'xeroTenantId' is not null or undefined if (xeroTenantId === null || xeroTenantId === undefined) { throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransfer.'); } // verify required parameter 'bankTransfers' is not null or undefined if (bankTransfers === null || bankTransfers === undefined) { throw new Error('Required parameter bankTransfers was null or undefined when calling createBankTransfer.'); } localVarHeaderParams['xero-tenant-id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string"); localVarHeaderParams['Idempotency-Key'] = models_1.ObjectSerializer.serialize(idempotencyKey, "string"); localVarHeaderParams['Accept'] = acceptHeadersFromSpec.join(); Object.assign(localVarHeaderParams, options.headers); let localVarUseFormData = false; let localVarRequestOptions = { method: 'PUT', params: localVarQueryParameters, headers: localVarHeaderParams, url: localVarPath, responseType: responseTypeOption, data: models_1.ObjectSerializer.serialize(bankTransfers, "BankTransfers"), }; let authenticationPromise = Promise.resolve(); authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions)); authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions)); return authenticationPromise.then(() => { if (Object.keys(localVarFormParams).length) { if (localVarUseFormData) { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'Content-Type': 'multipart/form-data' }); } else { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'content-type': 'application/x-www-form-urlencoded' }); } } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let body = null; try { const response = yield (0, axios_1.default)(localVarRequestOptions); body = models_1.ObjectSerializer.deserialize(response.data, "BankTransfers"); if (response.status && response.status >= 200 && response.status <= 299) { resolve({ response: response, body: body }); } else { reject({ response: response, body: body }); } } catch (error) { const errorResponse = new ApiError_1.ApiError(error); reject(JSON.stringify(errorResponse.generateError())); } })); }); }); } /** * * @param xeroTenantId Xero identifier for Tenant * @param bankTransferID Xero generated unique identifier for a bank transfer * @param fileName Name of the attachment * @param body Byte array of file in body of request * @param idempotencyKey This allows you to safely retry requests without the risk of duplicate processing. 128 character max. */ createBankTransferAttachmentByFileName(xeroTenantId_1, bankTransferID_1, fileName_1, body_1, idempotencyKey_1) { return __awaiter(this, arguments, void 0, function* (xeroTenantId, bankTransferID, fileName, body, idempotencyKey, options = { headers: {} }) { const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}/Attachments/{FileName}' .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID))) .replace('{' + 'FileName' + '}', encodeURIComponent(String(fileName))); let localVarQueryParameters = {}; let localVarHeaderParams = Object.assign({}, this.defaultHeaders); let localVarFormParams = {}; let acceptHeadersFromSpec = [ "application/json" ]; const isBufferType = acceptHeadersFromSpec.includes("application/pdf") || acceptHeadersFromSpec.includes("application/octet-stream") || acceptHeadersFromSpec.includes("application/jpg"); const responseTypeOption = isBufferType ? "arraybuffer" : "json"; // verify required parameter 'xeroTenantId' is not null or undefined if (xeroTenantId === null || xeroTenantId === undefined) { throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransferAttachmentByFileName.'); } // verify required parameter 'bankTransferID' is not null or undefined if (bankTransferID === null || bankTransferID === undefined) { throw new Error('Required parameter bankTransferID was null or undefined when calling createBankTransferAttachmentByFileName.'); } // verify required parameter 'fileName' is not null or undefined if (fileName === null || fileName === undefined) { throw new Error('Required parameter fileName was null or undefined when calling createBankTransferAttachmentByFileName.'); } // verify required parameter 'body' is not null or undefined if (body === null || body === undefined) { throw new Error('Required parameter body was null or undefined when calling createBankTransferAttachmentByFileName.'); } this.binaryHeaders = { 'Accept': 'application/json' }; Object.assign(localVarHeaderParams, this.binaryHeaders); localVarHeaderParams['xero-tenant-id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string"); localVarHeaderParams['Idempotency-Key'] = models_1.ObjectSerializer.serialize(idempotencyKey, "string"); localVarHeaderParams['Accept'] = acceptHeadersFromSpec.join(); Object.assign(localVarHeaderParams, options.headers); let localVarUseFormData = false; let localVarRequestOptions = { method: 'PUT', params: localVarQueryParameters, headers: localVarHeaderParams, url: localVarPath, responseType: responseTypeOption, data: models_1.ObjectSerializer.serialize(body, "string"), }; let authenticationPromise = Promise.resolve(); authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions)); authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions)); return authenticationPromise.then(() => { if (Object.keys(localVarFormParams).length) { if (localVarUseFormData) { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'Content-Type': 'multipart/form-data' }); } else { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'content-type': 'application/x-www-form-urlencoded' }); } } }).then(() => { // Reads file stream as chunks so we can put it in body of request. // This collects the whole file into memory, which is why we do it _after_ authentication. return new Promise((resolve, reject) => { let bodyStream; bodyStream = Buffer.isBuffer(body) ? stream_1.Readable.from(body) : body; const fileContents = []; bodyStream.on('data', (chunk) => { fileContents.push(chunk); }); bodyStream.on('end', () => { resolve(fileContents); }); bodyStream.on('error', (err) => { reject(err); }); }); }).then((fileContents) => { const file = Buffer.concat(fileContents); localVarRequestOptions.data = file; return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let body = null; try { const response = yield (0, axios_1.default)(localVarRequestOptions); body = models_1.ObjectSerializer.deserialize(response.data, "Attachments"); if (response.status && response.status >= 200 && response.status <= 299) { resolve({ response: response, body: body }); } else { reject({ response: response, body: body }); } } catch (error) { const errorResponse = new ApiError_1.ApiError(error); reject(JSON.stringify(errorResponse.generateError())); } })); }); }); } /** * * @summary Creates a history record for a specific bank transfer * @param xeroTenantId Xero identifier for Tenant * @param bankTransferID Xero generated unique identifier for a bank transfer * @param historyRecords HistoryRecords containing an array of HistoryRecord objects in body of request * @param idempotencyKey This allows you to safely retry requests without the risk of duplicate processing. 128 character max. */ createBankTransferHistoryRecord(xeroTenantId_1, bankTransferID_1, historyRecords_1, idempotencyKey_1) { return __awaiter(this, arguments, void 0, function* (xeroTenantId, bankTransferID, historyRecords, idempotencyKey, options = { headers: {} }) { const localVarPath = this.basePath + '/BankTransfers/{BankTransferID}/History' .replace('{' + 'BankTransferID' + '}', encodeURIComponent(String(bankTransferID))); let localVarQueryParameters = {}; let localVarHeaderParams = Object.assign({}, this.defaultHeaders); let localVarFormParams = {}; let acceptHeadersFromSpec = [ "application/json" ]; const isBufferType = acceptHeadersFromSpec.includes("application/pdf") || acceptHeadersFromSpec.includes("application/octet-stream") || acceptHeadersFromSpec.includes("application/jpg"); const responseTypeOption = isBufferType ? "arraybuffer" : "json"; // verify required parameter 'xeroTenantId' is not null or undefined if (xeroTenantId === null || xeroTenantId === undefined) { throw new Error('Required parameter xeroTenantId was null or undefined when calling createBankTransferHistoryRecord.'); } // verify required parameter 'bankTransferID' is not null or undefined if (bankTransferID === null || bankTransferID === undefined) { throw new Error('Required parameter bankTransferID was null or undefined when calling createBankTransferHistoryRecord.'); } // verify required parameter 'historyRecords' is not null or undefined if (historyRecords === null || historyRecords === undefined) { throw new Error('Required parameter historyRecords was null or undefined when calling createBankTransferHistoryRecord.'); } localVarHeaderParams['xero-tenant-id'] = models_1.ObjectSerializer.serialize(xeroTenantId, "string"); localVarHeaderParams['Idempotency-Key'] = models_1.ObjectSerializer.serialize(idempotencyKey, "string"); localVarHeaderParams['Accept'] = acceptHeadersFromSpec.join(); Object.assign(localVarHeaderParams, options.headers); let localVarUseFormData = false; let localVarRequestOptions = { method: 'PUT', params: localVarQueryParameters, headers: localVarHeaderParams, url: localVarPath, responseType: responseTypeOption, data: models_1.ObjectSerializer.serialize(historyRecords, "HistoryRecords"), }; let authenticationPromise = Promise.resolve(); authenticationPromise = authenticationPromise.then(() => this.authentications.OAuth2.applyToRequest(localVarRequestOptions)); authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions)); return authenticationPromise.then(() => { if (Object.keys(localVarFormParams).length) { if (localVarUseFormData) { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'Content-Type': 'multipart/form-data' }); } else { localVarRequestOptions.data = localVarFormParams; localVarRequestOptions.headers = Object.assign(Object.assign({}, localVarRequestOptions.headers), { 'content-type': 'application/x-www-form-urlencoded' }); } } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let body = null; try { const response = yield (0, axios_1.default)(localVarRequestOptions); body = models_1.ObjectSerializer.deserialize(response.data, "HistoryRecords"); if (response.status && response.status >= 200 && response.status <= 299) { resolve({ response: response, body: body }); } else { reject({ response: response, body: body }); } } catch (error) { const errorResponse = new ApiError_1.ApiError(error); reject(JSON.stringify(errorResponse.generateError())); } })); }); }); } /** * * @summary Creates one or many batch payments for invoices * @param xeroTenantId Xero identifier for Tenant * @param batchPayments BatchPayments with an array of Payments in body of request * @param summarizeErrors If false return 200 OK and mix of successfully created objects and any with validation errors * @param idempotencyKey This allows you to safely retry requests without the risk of duplicate processing. 128 character max. */ createBatchPayment(xeroTenantId_1, batchPayments_1, summarizeErrors_1, idempotencyKey_1) { return __awaiter(this, arguments, void 0, function* (xeroTenantId, batchPayments, summarizeErrors, idempotencyKey, options = { headers: {} }) { const localVarPath = this.basePath + '/BatchPayments'; let localVarQueryParameters = {}; let localVarHeaderParams = Object.assign({}, this.defaultHeaders); let localVarFormParams = {}; let acceptHeadersFromSpec = [ "application/json" ]; const isBufferType = acceptHeadersFromSpec.includes("application/pdf") || acceptHeadersFromSpec.includes("application/octet-stream") || acceptHeadersFromSpec.includes("application/jpg"); const responseTypeOption = isBufferType ? "arraybuffer" : "json"; // verify required parameter 'xeroTenantId' is not null or undefined if (xeroTenantId === null || xeroTenantId === undefined) { throw new Error('Required parameter xeroTenantId was null or undefined when calling createBatchPayment.'); } // verify required parameter 'batchPayments' is not null or undefined if (batchPayments === null || batchPayments === undefined) { throw new Error('Required parameter batchPayments was null or undefined when calling createBatchPayment.'); } if (summarizeErrors !== undefined) { localVarQueryParameters['summarizeErrors'] = models_1.ObjectSerializer.serialize(summa