UNPKG

@traien/n8n-nodes-espocrm

Version:
106 lines 4.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AccountHandler = void 0; const GenericFunctions_1 = require("../GenericFunctions"); const Utils_1 = require("./Utils"); class AccountHandler { async create(index) { const entityData = {}; entityData.name = this.getNodeParameter('name', index); const additionalFields = this.getNodeParameter('additionalFields', index, {}); Object.assign(entityData, additionalFields); if (additionalFields.billingAddress) { const address = additionalFields.billingAddress.details; Object.assign(entityData, (0, Utils_1.processAddressFields)('billingAddress', address)); delete entityData.billingAddress; } if (additionalFields.shippingAddress) { const address = additionalFields.shippingAddress.details; Object.assign(entityData, (0, Utils_1.processAddressFields)('shippingAddress', address)); delete entityData.shippingAddress; } const endpoint = '/account'; const responseData = await GenericFunctions_1.espoApiRequest.call(this, 'POST', endpoint, entityData); return responseData; } async get(index) { const accountId = this.getNodeParameter('accountId', index); const endpoint = `/account/${accountId}`; const responseData = await GenericFunctions_1.espoApiRequest.call(this, 'GET', endpoint); return responseData; } async update(index) { const accountId = this.getNodeParameter('accountId', index); const updateFields = this.getNodeParameter('updateFields', index, {}); const entityData = { ...updateFields }; if (updateFields.billingAddress) { const address = updateFields.billingAddress.details; Object.assign(entityData, (0, Utils_1.processAddressFields)('billingAddress', address)); delete entityData.billingAddress; } if (updateFields.shippingAddress) { const address = updateFields.shippingAddress.details; Object.assign(entityData, (0, Utils_1.processAddressFields)('shippingAddress', address)); delete entityData.shippingAddress; } const endpoint = `/account/${accountId}`; const responseData = await GenericFunctions_1.espoApiRequest.call(this, 'PATCH', endpoint, entityData); return responseData; } async delete(index) { const accountId = this.getNodeParameter('accountId', index); const endpoint = `/account/${accountId}`; await GenericFunctions_1.espoApiRequest.call(this, 'DELETE', endpoint); return { success: true, entityType: 'account', id: accountId, message: 'Account deleted successfully' }; } async getAll(index) { const returnAll = this.getNodeParameter('returnAll', index); const endpoint = '/account'; const qs = {}; const filterOptions = this.getNodeParameter('filterOptions', index, {}); if (filterOptions.where) { qs.where = filterOptions.where; } if (filterOptions.orderBy) { qs.orderBy = filterOptions.orderBy; } if (filterOptions.order) { qs.order = filterOptions.order; } if (filterOptions.select) { const selectValue = filterOptions.select; if (selectValue) { qs.select = selectValue.split(',').map(s => s.trim()).filter(Boolean); } } if (filterOptions.offset) { qs.offset = filterOptions.offset; } if (filterOptions.boolFilterList) { qs.boolFilterList = filterOptions.boolFilterList; } if (filterOptions.primaryFilter) { qs.primaryFilter = filterOptions.primaryFilter; } const headers = {}; if (filterOptions.skipTotalCount === true) { headers['X-No-Total'] = 'true'; } if (returnAll === true) { return await GenericFunctions_1.espoApiRequestAllItems.call(this, 'GET', endpoint, {}, qs); } else { const limit = this.getNodeParameter('limit', index); qs.maxSize = limit; const response = await GenericFunctions_1.espoApiRequest.call(this, 'GET', endpoint, {}, qs, undefined, headers); return response.list; } } } exports.AccountHandler = AccountHandler; //# sourceMappingURL=AccountHandler.js.map