UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

181 lines 6.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.searchContacts = searchContacts; exports.searchCalendars = searchCalendars; exports.searchDrafts = searchDrafts; exports.searchMessages = searchMessages; exports.searchEvents = searchEvents; exports.searchFolders = searchFolders; exports.searchAttachments = searchAttachments; const utils_1 = require("../helpers/utils"); const transport_1 = require("../transport"); async function search(resource, nameProperty, filter, paginationToken) { let response = {}; if (paginationToken) { response = await transport_1.microsoftApiRequest.call(this, 'GET', '', undefined, undefined, paginationToken); } else { const qs = { $select: `id,${nameProperty}`, $top: 100, }; if (filter) { const filterValue = encodeURI(filter); qs.$filter = `contains(${nameProperty}, '${filterValue}')`; } response = await transport_1.microsoftApiRequest.call(this, 'GET', resource, undefined, qs); } return { results: response.value.map((entry) => { return { name: entry[nameProperty], value: entry.id, }; }), paginationToken: response['@odata.nextLink'], }; } async function searchContacts(filter, paginationToken) { return await search.call(this, '/contacts', 'displayName', filter, paginationToken); } async function searchCalendars(filter, paginationToken) { return await search.call(this, '/calendars', 'name', filter, paginationToken); } async function searchDrafts(filter, paginationToken) { let response = {}; if (paginationToken) { response = await transport_1.microsoftApiRequest.call(this, 'GET', '', undefined, undefined, paginationToken); } else { const qs = { $select: 'id,subject,bodyPreview,webLink', $top: 100, $filter: 'isDraft eq true', }; if (filter) { const filterValue = encodeURI(filter); qs.$filter += ` AND contains(${'subject'}, '${filterValue}')`; } response = await transport_1.microsoftApiRequest.call(this, 'GET', '/messages', undefined, qs); } return { results: response.value.map((entry) => { return { name: (entry.subject || entry.bodyPreview), value: entry.id, url: entry.webLink, }; }), paginationToken: response['@odata.nextLink'], }; } async function searchMessages(filter, paginationToken) { let response = {}; if (paginationToken) { response = await transport_1.microsoftApiRequest.call(this, 'GET', '', undefined, undefined, paginationToken); } else { const qs = { $select: 'id,subject,bodyPreview,webLink', $top: 100, }; if (filter) { const filterValue = encodeURI(filter); qs.$filter = `contains(${'subject'}, '${filterValue}')`; } response = await transport_1.microsoftApiRequest.call(this, 'GET', '/messages', undefined, qs); } return { results: response.value.map((entry) => { return { name: (entry.subject || entry.bodyPreview), value: entry.id, url: entry.webLink, }; }), paginationToken: response['@odata.nextLink'], }; } async function searchEvents(filter, paginationToken) { let response = {}; const calendarId = this.getNodeParameter('calendarId', undefined, { extractValue: true, }); if (paginationToken) { response = await transport_1.microsoftApiRequest.call(this, 'GET', '', undefined, undefined, paginationToken); } else { const qs = { $select: 'id,subject,bodyPreview', $top: 100, }; if (filter) { const filterValue = encodeURI(filter); qs.$filter = `contains(${'subject'}, '${filterValue}')`; } response = await transport_1.microsoftApiRequest.call(this, 'GET', `/calendars/${calendarId}/events`, undefined, qs); } return { results: response.value.map((entry) => { return { name: (entry.subject || entry.bodyPreview), value: entry.id, url: `https://outlook.office365.com/calendar/item/${(0, utils_1.encodeOutlookId)(entry.id)}`, }; }), paginationToken: response['@odata.nextLink'], }; } async function searchFolders(filter, paginationToken) { let response = {}; if (paginationToken) { response = await transport_1.microsoftApiRequest.call(this, 'GET', '', undefined, undefined, paginationToken); } else { const qs = { $top: 100, }; response = await transport_1.microsoftApiRequest.call(this, 'GET', '/mailFolders', undefined, qs); } let folders = await transport_1.getSubfolders.call(this, response.value); if (filter) { filter = filter.toLowerCase(); folders = folders.filter((folder) => (folder.displayName || '').toLowerCase().includes(filter)); } return { results: folders.map((entry) => { return { name: entry.displayName, value: entry.id, url: `https://outlook.office365.com/mail/${(0, utils_1.encodeOutlookId)(entry.id)}`, }; }), paginationToken: response['@odata.nextLink'], }; } async function searchAttachments(paginationToken) { let response = {}; const messageId = this.getNodeParameter('messageId', undefined, { extractValue: true, }); if (paginationToken) { response = await transport_1.microsoftApiRequest.call(this, 'GET', '', undefined, undefined, paginationToken); } else { const qs = { $select: 'id,name', $top: 100, }; response = await transport_1.microsoftApiRequest.call(this, 'GET', `/messages/${messageId}/attachments`, undefined, qs); } return { results: response.value.map((entry) => { return { name: entry.name, value: entry.id, }; }), paginationToken: response['@odata.nextLink'], }; } //# sourceMappingURL=listSearch.js.map