n8n-nodes-base
Version:
Base nodes of n8n
181 lines • 6.44 kB
JavaScript
;
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