UNPKG

n8n-nodes-smartsuite

Version:
108 lines 4.84 kB
"use strict"; // src/nodes/SmartSuite/SmartSuite.node.ts Object.defineProperty(exports, "__esModule", { value: true }); exports.SmartSuite = void 0; const router_1 = require("./methods/router"); const smartSuiteApi_1 = require("./transport/smartSuiteApi"); // loadOptions & listSearch imports const loadOptions_1 = require("./methods/loadOptions"); const getValidFilters_1 = require("./helpers/getValidFilters"); const listSearch_1 = require("./methods/listSearch"); // resource descriptions const RecordDescription_1 = require("./actions/record/RecordDescription"); const TableDescription_1 = require("./actions/table/TableDescription"); const SolutionDescription_1 = require("./actions/solution/SolutionDescription"); const OrgManagementDescription_1 = require("./actions/orgManagement/OrgManagementDescription"); // API Request UI + executor const ApiRequestDescription_1 = require("./actions/api/ApiRequestDescription"); const makeApiRequest_operation_1 = require("./actions/api/makeApiRequest.operation"); class SmartSuite { description = { displayName: 'SmartSuite', name: 'smartsuite', icon: 'file:SmartSuite.svg', group: ['transform'], version: 2, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Interact with SmartSuite API', defaults: { name: 'SmartSuite' }, // disable the "inputs must be ['main']" lint rule for these lines // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node inputs: ["main" /* NodeConnectionType.Main */], // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node outputs: ["main" /* NodeConnectionType.Main */], credentials: [ { name: 'smartSuiteApi', required: true, testedBy: 'smartSuiteApiTest', }, ], properties: [ // 1) Resource selector { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, default: 'record', options: [ { name: 'Record', value: 'record' }, { name: 'Table', value: 'table' }, { name: 'Solution', value: 'solution' }, { name: 'Org Management', value: 'orgManagement' }, { name: 'API Request', value: 'apiRequest' }, ], description: 'Which SmartSuite resource to operate on', }, // 2) Existing-resource UIs ...RecordDescription_1.recordDescription, ...TableDescription_1.tableOperations, ...TableDescription_1.tableFields, ...SolutionDescription_1.solutionDescription, ...OrgManagementDescription_1.orgManagementDescription, // 3) API-Request UI (HTTP methods as operations + Query/Header/Body toggles) ...ApiRequestDescription_1.apiRequestDescription, ], }; methods = { credentialTest: { async smartSuiteApiTest() { try { // simple test endpoint await smartSuiteApi_1.apiRequest.call(this, 'GET', '/solutions/', {}, { limit: 1, offset: 0 }); return { status: 'OK', message: 'Connection successful!' }; } catch (err) { return { status: 'Error', message: err.message }; } }, }, loadOptions: { getOperations: loadOptions_1.getOperations, getTableFields: loadOptions_1.getTableFields, getMutableTableFields: loadOptions_1.getMutableTableFields, getFilterOptionsForFieldType: loadOptions_1.getFilterOptionsForFieldType, getAllFilterConditions: getValidFilters_1.getAllFilterConditions, searchTableFields: loadOptions_1.searchTableFields, searchTableFieldsMutable: loadOptions_1.searchTableFieldsMutable, }, listSearch: { solutionSearch: listSearch_1.solutionSearch, tableSearch: listSearch_1.tableSearch, }, }; async execute() { const resource = this.getNodeParameter('resource', 0); if (resource === 'apiRequest') { // call our single-operation executor at index 0 const output = await makeApiRequest_operation_1.executeMakeApiRequest.call(this, 0); return [output]; } // otherwise fall back to the router return router_1.router.call(this); } } exports.SmartSuite = SmartSuite; exports.default = SmartSuite; //# sourceMappingURL=SmartSuite.node.js.map