UNPKG

n8n-nodes-imap-ai

Version:

Simplified IMAP node for n8n with AI-agent support. Clean and modular email and mailbox management for automation workflows.

70 lines 3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.subscribeMailboxOperation = void 0; const SearchFieldParameters_1 = require("../../../utils/SearchFieldParameters"); exports.subscribeMailboxOperation = { operation: { name: 'Subscribe', value: 'subscribeMailbox', description: 'Subscribe or unsubscribe from mailbox folders to control which folders are visible in email clients. Perfect for AI agents to manage folder visibility and organize email client interfaces.', }, parameters: [ { displayName: 'Action', name: 'action', type: 'options', default: 'subscribe', description: 'Choose to subscribe (show folder) or unsubscribe (hide folder) from the mailbox', options: [ { name: 'Subscribe', value: 'subscribe', description: 'Subscribe to mailbox (make it visible in email clients)', action: 'Subscribe to mailbox make it visible in email clients', }, { name: 'Unsubscribe', value: 'unsubscribe', description: 'Unsubscribe from mailbox (hide it from email clients)', action: 'Unsubscribe from mailbox hide it from email clients', }, ], required: true, }, { ...SearchFieldParameters_1.parameterSelectMailbox, description: 'Select the mailbox to subscribe/unsubscribe. AI agents can manage folder visibility to keep interfaces clean.', }, ], async executeImapAction(context, itemIndex, client) { var _a; const returnData = []; const mailboxPath = (0, SearchFieldParameters_1.getMailboxPathFromNodeParameter)(context, itemIndex); const action = context.getNodeParameter('action', itemIndex); (_a = context.logger) === null || _a === void 0 ? void 0 : _a.info(`${action === 'subscribe' ? 'Subscribing to' : 'Unsubscribing from'} mailbox "${mailboxPath}"`); let result; if (action === 'subscribe') { result = await client.mailboxSubscribe(mailboxPath); } else { result = await client.mailboxUnsubscribe(mailboxPath); } const item_json = { operation: 'subscribeMailbox', action: action, mailboxPath: mailboxPath, success: true, actionedAt: new Date().toISOString(), message: `Successfully ${action}d ${action === 'subscribe' ? 'to' : 'from'} mailbox "${mailboxPath}"`, visibleInClients: action === 'subscribe', }; if (result) { item_json.serverResponse = result; } returnData.push({ json: item_json, }); return returnData; }, }; //# sourceMappingURL=MailboxSubscribe.js.map