UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

146 lines 6.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Cockpit = void 0; const n8n_workflow_1 = require("n8n-workflow"); const CollectionDescription_1 = require("./CollectionDescription"); const CollectionFunctions_1 = require("./CollectionFunctions"); const FormDescription_1 = require("./FormDescription"); const FormFunctions_1 = require("./FormFunctions"); const GenericFunctions_1 = require("./GenericFunctions"); const SingletonDescription_1 = require("./SingletonDescription"); const SingletonFunctions_1 = require("./SingletonFunctions"); class Cockpit { description = { displayName: 'Cockpit', name: 'cockpit', icon: { light: 'file:cockpit.svg', dark: 'file:cockpit.dark.svg' }, group: ['output'], version: 1, subtitle: '={{ $parameter["operation"] + ": " + $parameter["resource"] }}', description: 'Consume Cockpit API', defaults: { name: 'Cockpit', }, usableAsTool: true, inputs: [n8n_workflow_1.NodeConnectionTypes.Main], outputs: [n8n_workflow_1.NodeConnectionTypes.Main], credentials: [ { name: 'cockpitApi', required: true, }, ], properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, default: 'collection', options: [ { name: 'Collection', value: 'collection', }, { name: 'Form', value: 'form', }, { name: 'Singleton', value: 'singleton', }, ], }, ...CollectionDescription_1.collectionOperations, ...CollectionDescription_1.collectionFields, ...FormDescription_1.formOperations, ...FormDescription_1.formFields, ...SingletonDescription_1.singletonOperations, ...SingletonDescription_1.singletonFields, ], }; methods = { loadOptions: { async getCollections() { const collections = await CollectionFunctions_1.getAllCollectionNames.call(this); return collections.map((itemName) => { return { name: itemName, value: itemName, }; }); }, async getSingletons() { const singletons = await SingletonFunctions_1.getAllSingletonNames.call(this); return singletons.map((itemName) => { return { name: itemName, value: itemName, }; }); }, }, }; async execute() { const items = this.getInputData(); const returnData = []; const length = items.length; const resource = this.getNodeParameter('resource', 0); const operation = this.getNodeParameter('operation', 0); let responseData; for (let i = 0; i < length; i++) { try { if (resource === 'collection') { const collectionName = this.getNodeParameter('collection', i); if (operation === 'create') { const data = GenericFunctions_1.createDataFromParameters.call(this, i); responseData = await CollectionFunctions_1.createCollectionEntry.call(this, collectionName, data); } else if (operation === 'getAll') { const options = this.getNodeParameter('options', i); const returnAll = this.getNodeParameter('returnAll', i); if (!returnAll) { options.limit = this.getNodeParameter('limit', i); } responseData = await CollectionFunctions_1.getAllCollectionEntries.call(this, collectionName, options); } else if (operation === 'update') { const id = this.getNodeParameter('id', i); const data = GenericFunctions_1.createDataFromParameters.call(this, i); responseData = await CollectionFunctions_1.createCollectionEntry.call(this, collectionName, data, id); } } else if (resource === 'form') { const formName = this.getNodeParameter('form', i); if (operation === 'submit') { const form = GenericFunctions_1.createDataFromParameters.call(this, i); responseData = await FormFunctions_1.submitForm.call(this, formName, form); } } else if (resource === 'singleton') { const singletonName = this.getNodeParameter('singleton', i); if (operation === 'get') { responseData = await SingletonFunctions_1.getSingleton.call(this, singletonName); } } if (Array.isArray(responseData)) { returnData.push.apply(returnData, responseData); } else { returnData.push(responseData); } } catch (error) { if (this.continueOnFail()) { returnData.push({ error: error.message }); continue; } throw error; } } return [this.helpers.returnJsonArray(returnData)]; } } exports.Cockpit = Cockpit; //# sourceMappingURL=Cockpit.node.js.map