UNPKG

n8n-nodes-smartsuite

Version:
55 lines 2.64 kB
"use strict"; // src/nodes/SmartSuite/actions/record/createRecord.operation.ts Object.defineProperty(exports, "__esModule", { value: true }); exports.description = void 0; exports.execute = execute; const n8n_workflow_1 = require("n8n-workflow"); const utils_1 = require("../../helpers/utils"); const smartSuiteApi_1 = require("../../transport/smartSuiteApi"); const validation_1 = require("../../helpers/validation"); const resourceInputs_1 = require("../../shared/resourceInputs"); exports.description = [ { ...resourceInputs_1.solutionInput, displayOptions: { show: { resource: ['record'], operation: ['createRecord'] } }, }, { ...resourceInputs_1.tableInput, displayOptions: { show: { resource: ['record'], operation: ['createRecord'] } }, }, { ...resourceInputs_1.fieldsInput, displayOptions: { show: { resource: ['record'], operation: ['createRecord'] } }, }, ]; async function execute() { const solutionId = await validation_1.getSolutionId.call(this, 0); const tableId = await validation_1.getTableId.call(this, 0); (0, utils_1.debugLog)('[Record] createRecord.execute called', this.getNode().parameters); const items = this.getInputData(); const returnData = []; for (let i = 0; i < items.length; i++) { const fieldsArr = this.getNodeParameter('fieldsUi.fieldsValues', i, []); if (!fieldsArr.length) { throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'You must provide at least one field to create a record.', { itemIndex: i }); } // Prevent setting system fields for (const { field } of fieldsArr) { const slug = (0, utils_1.asIdString)(field); if ((0, utils_1.isReservedField)(slug)) { throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Cannot set system field “${slug}”.`, { itemIndex: i }); } } const payload = fieldsArr.reduce((obj, { field, value }) => { obj[(0, utils_1.asIdString)(field)] = value; return obj; }, {}); (0, utils_1.debugLog)('[Record] createRecord.request', { solutionId, tableId, payload }); const response = await smartSuiteApi_1.apiRequest.call(this, 'POST', `/applications/${tableId}/records/`, payload); (0, utils_1.debugLog)('[Record] createRecord.response', response); const result = (response && typeof response === 'object') ? response : {}; returnData.push(...this.helpers.returnJsonArray([result])); } return returnData; } //# sourceMappingURL=createRecord.operation.js.map