n8n-nodes-base
Version:
Base nodes of n8n
59 lines • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.erpNextApiRequest = erpNextApiRequest;
exports.erpNextApiRequestAllItems = erpNextApiRequestAllItems;
const n8n_workflow_1 = require("n8n-workflow");
/**
* Return the base API URL based on the user's environment.
*/
const getBaseUrl = ({ environment, domain, subdomain }) => environment === 'cloudHosted' ? `https://${subdomain}.${domain}` : domain;
async function erpNextApiRequest(method, resource, body = {}, query = {}, uri, option = {}) {
const credentials = await this.getCredentials('erpNextApi');
const baseUrl = getBaseUrl(credentials);
let options = {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
method,
body,
qs: query,
uri: uri || `${baseUrl}${resource}`,
json: true,
rejectUnauthorized: !credentials.allowUnauthorizedCerts,
};
options = Object.assign({}, options, option);
if (!Object.keys(options.body).length) {
delete options.body;
}
if (!Object.keys(options.qs).length) {
delete options.qs;
}
try {
return await this.helpers.requestWithAuthentication.call(this, 'erpNextApi', options);
}
catch (error) {
if (error.statusCode === 403) {
throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: 'DocType unavailable.' });
}
if (error.statusCode === 307) {
throw new n8n_workflow_1.NodeApiError(this.getNode(), {
message: 'Please ensure the subdomain is correct.',
});
}
throw error;
}
}
async function erpNextApiRequestAllItems(propertyName, method, resource, body, query = {}) {
const returnData = [];
let responseData;
query.limit_start = 0;
query.limit_page_length = 1000;
do {
responseData = await erpNextApiRequest.call(this, method, resource, body, query);
returnData.push.apply(returnData, responseData[propertyName]);
query.limit_start += query.limit_page_length - 1;
} while (responseData.data && responseData.data.length > 0);
return returnData;
}
//# sourceMappingURL=GenericFunctions.js.map