UNPKG

@arathron/n8n-nodes-zoho-books

Version:

n8n community nodes for Zoho Books and Zoho Inventory API integration - Complete CRUD operations for Sales Orders, Invoices, Items, Vendors, Credit Notes, Payments, Purchase Orders, Bills, Composite Items, Tax Management, Tax Groups, and Tax Exemptions

90 lines 4.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TaxGroupResource = void 0; const GenericFunctions_1 = require("../utils/GenericFunctions"); const TaxUtils_1 = require("../utils/TaxUtils"); const Cache_1 = require("../utils/Cache"); class TaxGroupResource { resourceName = 'Tax Group'; endpoint = '/settings/taxgroups'; async create(executeFunctions, itemIndex, additionalFields) { const taxGroupName = executeFunctions.getNodeParameter('taxGroupName', itemIndex); const taxIds = executeFunctions.getNodeParameter('taxIds', itemIndex); const params = { tax_group_name: taxGroupName, tax_ids: taxIds, ...additionalFields, }; const validation = (0, TaxUtils_1.validateTaxGroupData)(params); if (!validation.isValid) { throw new Error(`Invalid tax group data: ${(0, TaxUtils_1.createValidationErrorMessage)(validation)}`); } const body = { JSONString: JSON.stringify(params), }; const response = await GenericFunctions_1.zohoApiRequest.call(executeFunctions, 'POST', this.endpoint, body); const credentials = await executeFunctions.getCredentials('zohoBooksOAuth2'); const organizationId = credentials.organizationId; (0, Cache_1.delCachedPattern)(`taxgroups:${organizationId}*`); return (0, TaxUtils_1.normalizeTaxGroupResponse)(response?.tax_group); } async get(executeFunctions, itemIndex, _additionalFields) { const taxGroupId = executeFunctions.getNodeParameter('taxGroupId', itemIndex); const response = await GenericFunctions_1.zohoApiRequest.call(executeFunctions, 'GET', `${this.endpoint}/${taxGroupId}`); return (0, TaxUtils_1.normalizeTaxGroupResponse)(response?.tax_group); } async getAll(executeFunctions, itemIndex, _additionalFields) { const returnAll = executeFunctions.getNodeParameter('returnAll', itemIndex); const limit = executeFunctions.getNodeParameter('limit', itemIndex, 50); const page = executeFunctions.getNodeParameter('page', itemIndex, 1); const perPage = executeFunctions.getNodeParameter('perPage', itemIndex, 50); const response = await GenericFunctions_1.zohoApiRequest.call(executeFunctions, 'GET', this.endpoint, {}, { page, per_page: returnAll ? 200 : Math.min(perPage, 200), }); if (returnAll) { return GenericFunctions_1.zohoApiRequestAllItems.call(executeFunctions, 'GET', this.endpoint, {}, {}); } else { const taxGroups = response?.taxgroups || []; return taxGroups.slice(0, limit); } } async update(executeFunctions, itemIndex, _additionalFields) { const taxGroupId = executeFunctions.getNodeParameter('taxGroupId', itemIndex); const updateFields = executeFunctions.getNodeParameter('updateFields', itemIndex, {}); if (Object.keys(updateFields).length > 0) { if (updateFields.tax_ids && typeof updateFields.tax_ids === 'string') { updateFields.tax_ids = updateFields.tax_ids .split(',') .map(id => id.trim()) .filter(id => id.length > 0); } const validation = (0, TaxUtils_1.validateTaxGroupData)(updateFields); if (!validation.isValid) { throw new Error(`Invalid tax group update data: ${(0, TaxUtils_1.createValidationErrorMessage)(validation)}`); } } const body = { JSONString: JSON.stringify(updateFields), }; const response = await GenericFunctions_1.zohoApiRequest.call(executeFunctions, 'PUT', `${this.endpoint}/${taxGroupId}`, body); const credentials = await executeFunctions.getCredentials('zohoBooksOAuth2'); const organizationId = credentials.organizationId; (0, Cache_1.delCachedPattern)(`taxgroups:${organizationId}*`); return (0, TaxUtils_1.normalizeTaxGroupResponse)(response?.tax_group); } async delete(executeFunctions, itemIndex, _additionalFields) { const taxGroupId = executeFunctions.getNodeParameter('taxGroupId', itemIndex); const response = await GenericFunctions_1.zohoApiRequest.call(executeFunctions, 'DELETE', `${this.endpoint}/${taxGroupId}`); const credentials = await executeFunctions.getCredentials('zohoBooksOAuth2'); const organizationId = credentials.organizationId; (0, Cache_1.delCachedPattern)(`taxgroups:${organizationId}*`); return response; } async list(executeFunctions, _itemIndex, _additionalFields) { return GenericFunctions_1.zohoApiRequestAllItems.call(executeFunctions, 'GET', this.endpoint, {}, {}); } } exports.TaxGroupResource = TaxGroupResource; //# sourceMappingURL=TaxGroup.resource.js.map