n8n/packages/nodes-base/nodes/Microsoft/Teams/v2/descriptions/rlc.description.ts
Michael Kret 2c146cca62
feat(Microsoft Teams Node): Overhaul (#7477)
Co-authored-by: Giulio Andreini <andreini@netseven.it>
2024-01-22 18:35:09 +02:00

270 lines
6.2 KiB
TypeScript

import type { INodeProperties } from 'n8n-workflow';
export const teamRLC: INodeProperties = {
displayName: 'Team',
name: 'teamId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
description:
'Select the team from the list, by URL, or by ID (the ID is the "groupId" parameter in the URL you get from "Get a link to the team")',
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'e.g. My Team',
typeOptions: {
searchListMethod: 'getTeams',
searchable: true,
},
},
{
displayName: 'From URL',
name: 'url',
type: 'string',
placeholder: 'e.g. https://teams.microsoft.com/l/team/19%3AP8l9gXd6oqlgq…',
extractValue: {
type: 'regex',
regex: 'groupId=([a-f0-9-]+)\\&',
},
validation: [
{
type: 'regex',
properties: {
regex: 'https:\\/\\/teams.microsoft.com\\/.*groupId=[a-f0-9-]+\\&.*',
errorMessage: 'Not a valid Microsoft Teams URL',
},
},
],
},
{
displayName: 'By ID',
name: 'id',
type: 'string',
placeholder: 'e.g. 61165b04-e4cc-4026-b43f-926b4e2a7182',
validation: [
{
type: 'regex',
properties: {
regex: '^([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})[ \t]*',
errorMessage: 'Not a valid Microsoft Teams Team ID',
},
},
],
extractValue: {
type: 'regex',
regex: '^([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})',
},
},
],
};
export const channelRLC: INodeProperties = {
displayName: 'Channel',
name: 'channelId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
description:
'Select the channel from the list, by URL, or by ID (the ID is the "threadId" in the URL)',
typeOptions: {
loadOptionsDependsOn: ['teamId.value'],
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a Channel...',
typeOptions: {
searchListMethod: 'getChannels',
searchable: true,
},
},
{
displayName: 'By ID',
name: 'id',
type: 'string',
placeholder: '19:-xlxyqXNSCxpI1SDzgQ_L9ZvzSR26pgphq1BJ9y7QJE1@thread.tacv2',
// validation missing because no documentation found how these unique ids look like.
},
],
};
export const chatRLC: INodeProperties = {
displayName: 'Chat',
name: 'chatId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
description:
'Select the chat from the list, by URL, or by ID (find the chat ID after "conversations/" in the URL)',
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a Chat...',
typeOptions: {
searchListMethod: 'getChats',
searchable: true,
},
},
{
displayName: 'By ID',
name: 'id',
type: 'string',
placeholder:
'19:7e2f1174-e8ee-4859-b8b1-a8d1cc63d276_0c5cfdbb-596f-4d39-b557-5d9516c94107@unq.gbl.spaces',
// validation missing because no documentation found how these unique chat ids look like.
url: '=https://teams.microsoft.com/l/chat/{{encodeURIComponent($value)}}/0',
},
],
};
export const groupRLC: INodeProperties = {
displayName: 'Team',
name: 'groupId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
typeOptions: {
loadOptionsDependsOn: ['groupSource'],
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a Team...',
typeOptions: {
searchListMethod: 'getGroups',
searchable: true,
},
},
{
displayName: 'By ID',
name: 'id',
type: 'string',
placeholder: '12f0ca7d-b77f-4c4e-93d2-5cbdb4f464c6',
validation: [
{
type: 'regex',
properties: {
regex: '^([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})[ \t]*',
errorMessage: 'Not a valid Microsoft Teams Team ID',
},
},
],
extractValue: {
type: 'regex',
regex: '^([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})',
},
},
],
};
export const planRLC: INodeProperties = {
displayName: 'Plan',
name: 'planId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
typeOptions: {
loadOptionsDependsOn: ['groupId.value'],
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a Plan...',
typeOptions: {
searchListMethod: 'getPlans',
searchable: true,
},
},
{
displayName: 'By ID',
name: 'id',
type: 'string',
placeholder: 'rl1HYb0cUEiHPc7zgB_KWWUAA7Of',
// validation missing because no documentation found how these unique ids look like.
},
],
description: 'The plan for the task to belong to',
};
export const bucketRLC: INodeProperties = {
displayName: 'Bucket',
name: 'bucketId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
required: true,
typeOptions: {
loadOptionsDependsOn: ['planId.value'],
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a Bucket...',
typeOptions: {
searchListMethod: 'getBuckets',
searchable: true,
},
},
{
displayName: 'By ID',
name: 'id',
type: 'string',
placeholder: 'rl1HYb0cUEiHPc7zgB_KWWUAA7Of',
// validation missing because no documentation found how these unique ids look like.
},
],
description: 'The bucket for the task to belong to',
};
export const memberRLC: INodeProperties = {
displayName: 'Member',
name: 'memberId',
type: 'resourceLocator',
default: { mode: 'list', value: '' },
typeOptions: {
loadOptionsDependsOn: ['groupId.value'],
},
modes: [
{
displayName: 'From List',
name: 'list',
type: 'list',
placeholder: 'Select a Member...',
typeOptions: {
searchListMethod: 'getMembers',
searchable: true,
},
},
{
displayName: 'By ID',
name: 'id',
type: 'string',
placeholder: '7e2f1174-e8ee-4859-b8b1-a8d1cc63d276',
validation: [
{
type: 'regex',
properties: {
regex: '^([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})[ \t]*',
errorMessage: 'Not a valid Microsoft Teams Team ID',
},
},
],
extractValue: {
type: 'regex',
regex: '^([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})',
},
},
],
};