UNPKG

n8n-nodes-quepasa

Version:

This is an n8n community node. It lets you use Quepasa in your n8n workflows. (use with Quepasa >= v4)

214 lines 8.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Quepasa = void 0; const n8n_workflow_1 = require("n8n-workflow"); const descriptions_1 = require("./descriptions"); const methods_1 = require("./methods"); const GenericFunctions_1 = require("./GenericFunctions"); class Quepasa { constructor() { this.description = { displayName: 'Quepasa (Whatsapp)', name: 'quepasa', icon: 'file:quepasa.png', group: ['output'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Non Official Whatsapp API', defaults: { name: 'Quepasa', }, inputs: ['main'], outputs: ['main'], credentials: [ { name: 'quepasaTokenAuthApi', testedBy: 'quepasaTokenAuthApiTest', required: true, displayOptions: { show: { authentication: [ 'predefinedCredentialType', ], }, }, }, ], properties: [ { displayName: 'Authentication', name: 'authentication', noDataExpression: true, type: 'options', required: true, options: [ { name: 'Parameters', value: 'parametersCredentialType', }, { name: 'Predefined Quepasa Credentials', value: 'predefinedCredentialType', description: 'BaseUrl + Token', }, ], default: 'parametersCredentialType', }, { displayName: 'BaseUrl', name: 'baseUrl', type: 'string', default: '', required: true, description: 'Base URL', placeholder: 'https://api.quepasa.org:31000', displayOptions: { show: { authentication: [ 'parametersCredentialType', ], }, }, }, { displayName: 'Token', name: 'token', type: 'string', typeOptions: { password: true }, default: '', required: true, description: 'Token of Whatsapp bot, override credentials', placeholder: '00000000-0000-0000-0000-000000000000', displayOptions: { show: { authentication: [ 'parametersCredentialType', ], }, }, }, { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Information', value: 'information', }, { name: 'Message', value: 'message', }, { name: 'Webhook', value: 'webhook', }, { name: 'Control', value: 'control', }, ], default: 'message', required: true, }, { displayName: 'Operation', name: 'operation', type: 'hidden', noDataExpression: true, displayOptions: { show: { resource: [ 'information', ], }, }, default: 'information', required: true, }, ...descriptions_1.controlDescription, ...descriptions_1.controlFields, ...descriptions_1.messageDescription, ...descriptions_1.messageFields, ...descriptions_1.webhookDescription, ...descriptions_1.webhookFields, ], }; this.methods = { credentialTest: { async quepasaTokenAuthApiTest(credential) { const credentials = credential.data; const options = (0, GenericFunctions_1.requestBotInfo)(credentials); try { await this.helpers.request(options); return { status: 'OK', message: 'Authentication successful', }; } catch (error) { return { status: 'Error', message: error.message, }; } }, }, }; } async execute() { const items = this.getInputData(); const resource = this.getNodeParameter('resource', 0); const operation = this.getNodeParameter('operation', 0); const returnData = []; for (let i = 0; i < items.length; i++) { let responseData; try { if (resource === 'information') { const fullResponse = await GenericFunctions_1.apiRequest.call(this, 'GET', '/info'); responseData = fullResponse.body; } else if (resource === 'message') { responseData = await methods_1.resourceMessage.call(this, operation, items, i); } else if (resource === 'webhook') { responseData = await methods_1.resourceWebhook.call(this, operation, items, i); } else if (resource === 'control') { responseData = await methods_1.resourceControl.call(this, operation, items, i); } if (Array.isArray(responseData)) { returnData.push.apply(returnData, responseData); } else if (responseData !== undefined) { returnData.push(responseData); } } catch (error) { if (this.continueOnFail()) { if (operation === 'download' || operation === 'picdata' || items[i].binary) { items[i].json = { error: error.message }; } else { returnData.push(error); } continue; } if (error instanceof n8n_workflow_1.NodeError) throw error; else throw new n8n_workflow_1.NodeOperationError(this.getNode(), error); } } if (operation === 'download') { return this.prepareOutputData(items); } else { return [this.helpers.returnJsonArray(returnData)]; } } } exports.Quepasa = Quepasa; //# sourceMappingURL=Quepasa.node.js.map