n8n/packages/nodes-base/nodes/Microsoft/Outlook/v2/descriptions/rlc.description.ts
Michael Kret 556a6132ba
feat(Microsoft Outlook Node): Node overhaul (#4449)
[N8N-4995](https://linear.app/n8n/issue/N8N-4995)

---------

Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
2023-09-15 12:52:18 +03:00

230 lines
4.7 KiB
TypeScript

import type { INodeProperties } from 'n8n-workflow';
export const calendarRLC: INodeProperties = {
displayName: 'Calendar',
name: 'calendarId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a calendar...',
typeOptions: {
searchListMethod: 'searchCalendars',
searchable: true,
},
},
{
displayName: 'ID',
name: 'id',
type: 'string',
placeholder: 'e.g. AAAkAAAhAAA0BBc5LLLwOOOtNNNkZS05Nz...',
},
],
};
export const contactRLC: INodeProperties = {
displayName: 'Contact',
name: 'contactId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a contact...',
typeOptions: {
searchListMethod: 'searchContacts',
searchable: true,
},
},
{
displayName: 'ID',
name: 'id',
type: 'string',
placeholder: 'e.g. AAAkAAAhAAA0BBc5LLLwOOOtNNNkZS05Nz...',
},
],
};
export const draftRLC: INodeProperties = {
displayName: 'Draft',
name: 'draftId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a draft...',
typeOptions: {
searchListMethod: 'searchDrafts',
searchable: true,
},
},
{
displayName: 'ID',
name: 'id',
type: 'string',
placeholder: 'e.g. AAAkAAAhAAA0BBc5LLLwOOOtNNNkZS05Nz...',
},
],
};
export const messageRLC: INodeProperties = {
displayName: 'Message',
name: 'messageId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a message...',
typeOptions: {
searchListMethod: 'searchMessages',
searchable: true,
},
},
{
displayName: 'ID',
name: 'id',
type: 'string',
placeholder: 'e.g. AAAkAAAhAAA0BBc5LLLwOOOtNNNkZS05Nz...',
},
],
};
export const eventRLC: INodeProperties = {
displayName: 'Event',
name: 'eventId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
typeOptions: {
loadOptionsDependsOn: ['calendarId.value'],
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a event...',
typeOptions: {
searchListMethod: 'searchEvents',
searchable: true,
},
},
{
displayName: 'Link',
name: 'url',
type: 'string',
placeholder: 'e.g. https://outlook.office365.com/calendar/item/AAMkADlhOTA0M...UAAA%3D',
extractValue: {
type: 'regex',
regex:
'https:\\/\\/outlook\\.office365\\.com\\/calendar\\/item\\/([A-Za-z0-9%]+)(?:\\/.*|)',
},
validation: [
{
type: 'regex',
properties: {
regex:
'https:\\/\\/outlook\\.office365\\.com\\/calendar\\/item\\/([A-Za-z0-9%]+)(?:\\/.*|)',
errorMessage: 'Not a valid Outlook Event URL',
},
},
],
},
{
displayName: 'ID',
name: 'id',
type: 'string',
placeholder: 'e.g. AAAkAAAhAAA0BBc5LLLwOOOtNNNkZS05Nz...',
},
],
};
export const folderRLC: INodeProperties = {
displayName: 'Folder',
name: 'folderId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a folder...',
typeOptions: {
searchListMethod: 'searchFolders',
searchable: true,
},
},
{
displayName: 'Link',
name: 'url',
type: 'string',
placeholder: 'e.g. https://outlook.office365.com/mail/AAMkADlhOT...AAA%3D',
extractValue: {
type: 'regex',
regex: 'https:\\/\\/outlook\\.office365\\.com\\/mail\\/([A-Za-z0-9%]+)(?:\\/.*|)',
},
validation: [
{
type: 'regex',
properties: {
regex: 'https:\\/\\/outlook\\.office365\\.com\\/mail\\/([A-Za-z0-9%]+)(?:\\/.*|)',
errorMessage: 'Not a valid Outlook Folder URL',
},
},
],
},
{
displayName: 'ID',
name: 'id',
type: 'string',
placeholder: 'e.g. AAAkAAAhAAA0BBc5LLLwOOOtNNNkZS05Nz...',
},
],
};
export const attachmentRLC: INodeProperties = {
displayName: 'Attachment',
name: 'attachmentId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
typeOptions: {
loadOptionsDependsOn: ['messageId.value'],
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a attachment...',
typeOptions: {
searchListMethod: 'searchAttachments',
searchable: false,
},
},
{
displayName: 'ID',
name: 'id',
type: 'string',
placeholder: 'e.g. AAAkAAAhAAA0BBc5LLLwOOOtNNNkZS05Nz...',
},
],
};