UNPKG

n8n-nodes-walichat

Version:

n8n plugin for WaliChat

167 lines (166 loc) 5.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeLabelOperations = exports.labelProperties = void 0; const request_1 = require("../request"); exports.labelProperties = [ { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['labels'], }, }, options: [ { name: 'Get Labels', value: 'getLabels', description: 'Get labels', }, { name: 'Create Label', value: 'createLabel', description: 'Create a new label', }, { name: 'Update Label', value: 'updateLabel', description: 'Update an existing label', }, { name: 'Delete Label', value: 'deleteLabel', description: 'Delete a label by name', }, ], default: 'getLabels', }, { displayName: 'WhatsApp number', name: 'device', type: 'string', required: true, default: '', typeOptions: { loadOptionsMethod: 'getDevices', }, displayOptions: { show: { resource: ['labels'], }, }, description: 'The ID of the WhatsApp number', }, // CREATE LABEL { displayName: 'Label Name', name: 'name', type: 'string', required: true, default: '', displayOptions: { show: { resource: ['labels'], operation: ['createLabel', 'updateLabel', 'deleteLabel'], }, }, description: 'The name of the label', }, { displayName: 'Label Color', name: 'color', type: 'options', required: true, default: 'blue', displayOptions: { show: { resource: ['labels'], operation: ['createLabel', 'updateLabel'], }, }, options: [ { name: 'Ruby', value: 'ruby' }, { name: 'Tomato', value: 'tomato' }, { name: 'Orange', value: 'orange' }, { name: 'Sunflower', value: 'sunflower' }, { name: 'Bubble', value: 'bubble' }, { name: 'Rose', value: 'rose' }, { name: 'Poppy', value: 'poppy' }, { name: 'Rouge', value: 'rouge' }, { name: 'Raspberry', value: 'raspberry' }, { name: 'Purple', value: 'purple' }, { name: 'Lavender', value: 'lavender' }, { name: 'Violet', value: 'violet' }, { name: 'Pool', value: 'pool' }, { name: 'Emerald', value: 'emerald' }, { name: 'Kelly', value: 'kelly' }, { name: 'Apple', value: 'apple' }, { name: 'Turquoise', value: 'turquoise' }, { name: 'Aqua', value: 'aqua' }, { name: 'Gold', value: 'gold' }, { name: 'Latte', value: 'latte' }, { name: 'Cocoa', value: 'cocoa' }, { name: 'Iron', value: 'iron' }, ], description: 'The color of the label', }, { displayName: 'Description', name: 'description', type: 'string', required: false, default: '', displayOptions: { show: { resource: ['labels'], operation: ['createLabel', 'updateLabel'], }, }, description: 'A short description of the label', }, ]; async function executeLabelOperations(index) { const operation = this.getNodeParameter('operation', index); const device = this.getNodeParameter('device', index); if (operation === 'getLabels') { // GET /devices/{device}/labels return (0, request_1.request)(this, 'GET', `/devices/${device}/labels`); } if (operation === 'createLabel') { // POST /devices/{device}/labels const name = this.getNodeParameter('name', index); const color = this.getNodeParameter('color', index); const description = this.getNodeParameter('description', index); const body = { name, color, }; if (description) { body.description = description; } return (0, request_1.request)(this, 'POST', `/devices/${device}/labels`, body); } if (operation === 'updateLabel') { // PATCH /devices/{device}/labels const name = this.getNodeParameter('name', index); const color = this.getNodeParameter('color', index); const description = this.getNodeParameter('description', index); const body = { name, color, }; if (description) { body.description = description; } return (0, request_1.request)(this, 'PATCH', `/devices/${device}/labels`, body); } if (operation === 'deleteLabel') { // DELETE /devices/{device}/labels const name = this.getNodeParameter('name', index); return (0, request_1.request)(this, 'DELETE', `/devices/${device}/labels`, { name }); } throw new Error(`The operation "${operation}" is not supported for labels!`); } exports.executeLabelOperations = executeLabelOperations;