UNPKG

dtamind-components

Version:

Apps integration for Dtamind. Contain Nodes and Credentials.

1,013 lines (977 loc) 41.7 kB
import { INode, INodeData, INodeParams } from '../../../src/Interface' import { convertMultiOptionsToStringArray, getCredentialData, getCredentialParam, refreshOAuth2Token } from '../../../src/utils' import { createTeamsTools } from './core' class MicrosoftTeams_Tools implements INode { label: string name: string version: number description: string type: string icon: string category: string baseClasses: string[] inputs: INodeParams[] credential: INodeParams constructor() { this.label = 'Microsoft Teams' this.name = 'microsoftTeams' this.version = 1.0 this.type = 'MicrosoftTeams' this.icon = 'teams.svg' this.category = 'Tools' this.description = 'Perform Microsoft Teams operations for channels, chats, and chat messages' this.baseClasses = [this.type, 'Tool'] this.credential = { label: 'Connect Credential', name: 'credential', type: 'credential', credentialNames: ['microsoftTeamsOAuth2'] } this.inputs = [ { label: 'Type', name: 'teamsType', type: 'options', options: [ { label: 'Channel', name: 'channel' }, { label: 'Chat', name: 'chat' }, { label: 'Chat Message', name: 'chatMessage' } ] }, // Channel Actions { label: 'Channel Actions', name: 'channelActions', type: 'multiOptions', options: [ { label: 'List Channels', name: 'listChannels' }, { label: 'Get Channel', name: 'getChannel' }, { label: 'Create Channel', name: 'createChannel' }, { label: 'Update Channel', name: 'updateChannel' }, { label: 'Delete Channel', name: 'deleteChannel' }, { label: 'Archive Channel', name: 'archiveChannel' }, { label: 'Unarchive Channel', name: 'unarchiveChannel' }, { label: 'List Channel Members', name: 'listChannelMembers' }, { label: 'Add Channel Member', name: 'addChannelMember' }, { label: 'Remove Channel Member', name: 'removeChannelMember' } ], show: { teamsType: ['channel'] } }, // Chat Actions { label: 'Chat Actions', name: 'chatActions', type: 'multiOptions', options: [ { label: 'List Chats', name: 'listChats' }, { label: 'Get Chat', name: 'getChat' }, { label: 'Create Chat', name: 'createChat' }, { label: 'Update Chat', name: 'updateChat' }, { label: 'Delete Chat', name: 'deleteChat' }, { label: 'List Chat Members', name: 'listChatMembers' }, { label: 'Add Chat Member', name: 'addChatMember' }, { label: 'Remove Chat Member', name: 'removeChatMember' }, { label: 'Pin Message', name: 'pinMessage' }, { label: 'Unpin Message', name: 'unpinMessage' } ], show: { teamsType: ['chat'] } }, // Chat Message Actions { label: 'Chat Message Actions', name: 'chatMessageActions', type: 'multiOptions', options: [ { label: 'List Messages', name: 'listMessages' }, { label: 'Get Message', name: 'getMessage' }, { label: 'Send Message', name: 'sendMessage' }, { label: 'Update Message', name: 'updateMessage' }, { label: 'Delete Message', name: 'deleteMessage' }, { label: 'Reply to Message', name: 'replyToMessage' }, { label: 'Set Reaction', name: 'setReaction' }, { label: 'Unset Reaction', name: 'unsetReaction' }, { label: 'Get All Messages', name: 'getAllMessages' } ], show: { teamsType: ['chatMessage'] } }, // CHANNEL PARAMETERS // List Channels Parameters { label: 'Team ID [List Channels]', name: 'teamIdListChannels', type: 'string', description: 'ID of the team to list channels from', show: { teamsType: ['channel'], channelActions: ['listChannels'] }, additionalParams: true, optional: true }, { label: 'Max Results [List Channels]', name: 'maxResultsListChannels', type: 'number', description: 'Maximum number of channels to return', default: 50, show: { teamsType: ['channel'], channelActions: ['listChannels'] }, additionalParams: true, optional: true }, // Get Channel Parameters { label: 'Team ID [Get Channel]', name: 'teamIdGetChannel', type: 'string', description: 'ID of the team that contains the channel', show: { teamsType: ['channel'], channelActions: ['getChannel'] }, additionalParams: true, optional: true }, { label: 'Channel ID [Get Channel]', name: 'channelIdGetChannel', type: 'string', description: 'ID of the channel to retrieve', show: { teamsType: ['channel'], channelActions: ['getChannel'] }, additionalParams: true, optional: true }, // Create Channel Parameters { label: 'Team ID [Create Channel]', name: 'teamIdCreateChannel', type: 'string', description: 'ID of the team to create the channel in', show: { teamsType: ['channel'], channelActions: ['createChannel'] }, additionalParams: true, optional: true }, { label: 'Display Name [Create Channel]', name: 'displayNameCreateChannel', type: 'string', description: 'Display name of the channel', placeholder: 'My New Channel', show: { teamsType: ['channel'], channelActions: ['createChannel'] }, additionalParams: true, optional: true }, { label: 'Description [Create Channel]', name: 'descriptionCreateChannel', type: 'string', description: 'Description of the channel', placeholder: 'Channel description', rows: 2, show: { teamsType: ['channel'], channelActions: ['createChannel'] }, additionalParams: true, optional: true }, { label: 'Membership Type [Create Channel]', name: 'membershipTypeCreateChannel', type: 'options', options: [ { label: 'Standard', name: 'standard' }, { label: 'Private', name: 'private' }, { label: 'Shared', name: 'shared' } ], default: 'standard', description: 'Type of channel membership', show: { teamsType: ['channel'], channelActions: ['createChannel'] }, additionalParams: true, optional: true }, // Update Channel Parameters { label: 'Team ID [Update Channel]', name: 'teamIdUpdateChannel', type: 'string', description: 'ID of the team that contains the channel', show: { teamsType: ['channel'], channelActions: ['updateChannel'] }, additionalParams: true, optional: true }, { label: 'Channel ID [Update Channel]', name: 'channelIdUpdateChannel', type: 'string', description: 'ID of the channel to update', show: { teamsType: ['channel'], channelActions: ['updateChannel'] }, additionalParams: true, optional: true }, { label: 'Display Name [Update Channel]', name: 'displayNameUpdateChannel', type: 'string', description: 'New display name of the channel', show: { teamsType: ['channel'], channelActions: ['updateChannel'] }, additionalParams: true, optional: true }, // Delete/Archive Channel Parameters { label: 'Team ID [Delete/Archive Channel]', name: 'teamIdDeleteChannel', type: 'string', description: 'ID of the team that contains the channel', show: { teamsType: ['channel'], channelActions: ['deleteChannel', 'archiveChannel', 'unarchiveChannel'] }, additionalParams: true, optional: true }, { label: 'Channel ID [Delete/Archive Channel]', name: 'channelIdDeleteChannel', type: 'string', description: 'ID of the channel to delete or archive', show: { teamsType: ['channel'], channelActions: ['deleteChannel', 'archiveChannel', 'unarchiveChannel'] }, additionalParams: true, optional: true }, // Channel Members Parameters { label: 'Team ID [Channel Members]', name: 'teamIdChannelMembers', type: 'string', description: 'ID of the team that contains the channel', show: { teamsType: ['channel'], channelActions: ['listChannelMembers', 'addChannelMember', 'removeChannelMember'] }, additionalParams: true, optional: true }, { label: 'Channel ID [Channel Members]', name: 'channelIdChannelMembers', type: 'string', description: 'ID of the channel', show: { teamsType: ['channel'], channelActions: ['listChannelMembers', 'addChannelMember', 'removeChannelMember'] }, additionalParams: true, optional: true }, { label: 'User ID [Add/Remove Channel Member]', name: 'userIdChannelMember', type: 'string', description: 'ID of the user to add or remove', show: { teamsType: ['channel'], channelActions: ['addChannelMember', 'removeChannelMember'] }, additionalParams: true, optional: true }, // CHAT PARAMETERS // List Chats Parameters { label: 'Max Results [List Chats]', name: 'maxResultsListChats', type: 'number', description: 'Maximum number of chats to return', default: 50, show: { teamsType: ['chat'], chatActions: ['listChats'] }, additionalParams: true, optional: true }, // Get Chat Parameters { label: 'Chat ID [Get Chat]', name: 'chatIdGetChat', type: 'string', description: 'ID of the chat to retrieve', show: { teamsType: ['chat'], chatActions: ['getChat'] }, additionalParams: true, optional: true }, // Create Chat Parameters { label: 'Chat Type [Create Chat]', name: 'chatTypeCreateChat', type: 'options', options: [ { label: 'One on One', name: 'oneOnOne' }, { label: 'Group', name: 'group' } ], default: 'group', description: 'Type of chat to create', show: { teamsType: ['chat'], chatActions: ['createChat'] }, additionalParams: true, optional: true }, { label: 'Topic [Create Chat]', name: 'topicCreateChat', type: 'string', description: 'Topic/subject of the chat (for group chats)', placeholder: 'Chat topic', show: { teamsType: ['chat'], chatActions: ['createChat'] }, additionalParams: true, optional: true }, { label: 'Members [Create Chat]', name: 'membersCreateChat', type: 'string', description: 'Comma-separated list of user IDs to add to the chat', placeholder: 'user1@example.com,user2@example.com', show: { teamsType: ['chat'], chatActions: ['createChat'] }, additionalParams: true, optional: true }, // Update Chat Parameters { label: 'Chat ID [Update Chat]', name: 'chatIdUpdateChat', type: 'string', description: 'ID of the chat to update', show: { teamsType: ['chat'], chatActions: ['updateChat'] }, additionalParams: true, optional: true }, { label: 'Topic [Update Chat]', name: 'topicUpdateChat', type: 'string', description: 'New topic/subject of the chat', show: { teamsType: ['chat'], chatActions: ['updateChat'] }, additionalParams: true, optional: true }, // Delete Chat Parameters { label: 'Chat ID [Delete Chat]', name: 'chatIdDeleteChat', type: 'string', description: 'ID of the chat to delete', show: { teamsType: ['chat'], chatActions: ['deleteChat'] }, additionalParams: true, optional: true }, // Chat Members Parameters { label: 'Chat ID [Chat Members]', name: 'chatIdChatMembers', type: 'string', description: 'ID of the chat', show: { teamsType: ['chat'], chatActions: ['listChatMembers', 'addChatMember', 'removeChatMember'] }, additionalParams: true, optional: true }, { label: 'User ID [Add/Remove Chat Member]', name: 'userIdChatMember', type: 'string', description: 'ID of the user to add or remove', show: { teamsType: ['chat'], chatActions: ['addChatMember', 'removeChatMember'] }, additionalParams: true, optional: true }, // Pin/Unpin Message Parameters { label: 'Chat ID [Pin/Unpin Message]', name: 'chatIdPinMessage', type: 'string', description: 'ID of the chat', show: { teamsType: ['chat'], chatActions: ['pinMessage', 'unpinMessage'] }, additionalParams: true, optional: true }, { label: 'Message ID [Pin/Unpin Message]', name: 'messageIdPinMessage', type: 'string', description: 'ID of the message to pin or unpin', show: { teamsType: ['chat'], chatActions: ['pinMessage', 'unpinMessage'] }, additionalParams: true, optional: true }, // CHAT MESSAGE PARAMETERS // List Messages Parameters { label: 'Chat/Channel ID [List Messages]', name: 'chatChannelIdListMessages', type: 'string', description: 'ID of the chat or channel to list messages from', show: { teamsType: ['chatMessage'], chatMessageActions: ['listMessages'] }, additionalParams: true, optional: true }, { label: 'Team ID [List Messages - Channel Only]', name: 'teamIdListMessages', type: 'string', description: 'ID of the team (required for channel messages)', show: { teamsType: ['chatMessage'], chatMessageActions: ['listMessages'] }, additionalParams: true, optional: true }, { label: 'Max Results [List Messages]', name: 'maxResultsListMessages', type: 'number', description: 'Maximum number of messages to return', default: 50, show: { teamsType: ['chatMessage'], chatMessageActions: ['listMessages'] }, additionalParams: true, optional: true }, // Get Message Parameters { label: 'Chat/Channel ID [Get Message]', name: 'chatChannelIdGetMessage', type: 'string', description: 'ID of the chat or channel', show: { teamsType: ['chatMessage'], chatMessageActions: ['getMessage'] }, additionalParams: true, optional: true }, { label: 'Team ID [Get Message - Channel Only]', name: 'teamIdGetMessage', type: 'string', description: 'ID of the team (required for channel messages)', show: { teamsType: ['chatMessage'], chatMessageActions: ['getMessage'] }, additionalParams: true, optional: true }, { label: 'Message ID [Get Message]', name: 'messageIdGetMessage', type: 'string', description: 'ID of the message to retrieve', show: { teamsType: ['chatMessage'], chatMessageActions: ['getMessage'] }, additionalParams: true, optional: true }, // Send Message Parameters { label: 'Chat/Channel ID [Send Message]', name: 'chatChannelIdSendMessage', type: 'string', description: 'ID of the chat or channel to send message to', show: { teamsType: ['chatMessage'], chatMessageActions: ['sendMessage'] }, additionalParams: true, optional: true }, { label: 'Team ID [Send Message - Channel Only]', name: 'teamIdSendMessage', type: 'string', description: 'ID of the team (required for channel messages)', show: { teamsType: ['chatMessage'], chatMessageActions: ['sendMessage'] }, additionalParams: true, optional: true }, { label: 'Message Body [Send Message]', name: 'messageBodySendMessage', type: 'string', description: 'Content of the message', placeholder: 'Hello, this is a message!', rows: 4, show: { teamsType: ['chatMessage'], chatMessageActions: ['sendMessage'] }, additionalParams: true, optional: true }, { label: 'Content Type [Send Message]', name: 'contentTypeSendMessage', type: 'options', options: [ { label: 'Text', name: 'text' }, { label: 'HTML', name: 'html' } ], default: 'text', description: 'Content type of the message', show: { teamsType: ['chatMessage'], chatMessageActions: ['sendMessage'] }, additionalParams: true, optional: true }, // Update Message Parameters { label: 'Chat/Channel ID [Update Message]', name: 'chatChannelIdUpdateMessage', type: 'string', description: 'ID of the chat or channel', show: { teamsType: ['chatMessage'], chatMessageActions: ['updateMessage'] }, additionalParams: true, optional: true }, { label: 'Team ID [Update Message - Channel Only]', name: 'teamIdUpdateMessage', type: 'string', description: 'ID of the team (required for channel messages)', show: { teamsType: ['chatMessage'], chatMessageActions: ['updateMessage'] }, additionalParams: true, optional: true }, { label: 'Message ID [Update Message]', name: 'messageIdUpdateMessage', type: 'string', description: 'ID of the message to update', show: { teamsType: ['chatMessage'], chatMessageActions: ['updateMessage'] }, additionalParams: true, optional: true }, // Delete Message Parameters { label: 'Chat/Channel ID [Delete Message]', name: 'chatChannelIdDeleteMessage', type: 'string', description: 'ID of the chat or channel', show: { teamsType: ['chatMessage'], chatMessageActions: ['deleteMessage'] }, additionalParams: true, optional: true }, { label: 'Team ID [Delete Message - Channel Only]', name: 'teamIdDeleteMessage', type: 'string', description: 'ID of the team (required for channel messages)', show: { teamsType: ['chatMessage'], chatMessageActions: ['deleteMessage'] }, additionalParams: true, optional: true }, { label: 'Message ID [Delete Message]', name: 'messageIdDeleteMessage', type: 'string', description: 'ID of the message to delete', show: { teamsType: ['chatMessage'], chatMessageActions: ['deleteMessage'] }, additionalParams: true, optional: true }, // Reply to Message Parameters { label: 'Chat/Channel ID [Reply to Message]', name: 'chatChannelIdReplyMessage', type: 'string', description: 'ID of the chat or channel', show: { teamsType: ['chatMessage'], chatMessageActions: ['replyToMessage'] }, additionalParams: true, optional: true }, { label: 'Team ID [Reply to Message - Channel Only]', name: 'teamIdReplyMessage', type: 'string', description: 'ID of the team (required for channel messages)', show: { teamsType: ['chatMessage'], chatMessageActions: ['replyToMessage'] }, additionalParams: true, optional: true }, { label: 'Message ID [Reply to Message]', name: 'messageIdReplyMessage', type: 'string', description: 'ID of the message to reply to', show: { teamsType: ['chatMessage'], chatMessageActions: ['replyToMessage'] }, additionalParams: true, optional: true }, { label: 'Reply Body [Reply to Message]', name: 'replyBodyReplyMessage', type: 'string', description: 'Content of the reply', placeholder: 'This is my reply', rows: 3, show: { teamsType: ['chatMessage'], chatMessageActions: ['replyToMessage'] }, additionalParams: true, optional: true }, // Set/Unset Reaction Parameters { label: 'Chat/Channel ID [Set/Unset Reaction]', name: 'chatChannelIdReaction', type: 'string', description: 'ID of the chat or channel', show: { teamsType: ['chatMessage'], chatMessageActions: ['setReaction', 'unsetReaction'] }, additionalParams: true, optional: true }, { label: 'Team ID [Set/Unset Reaction - Channel Only]', name: 'teamIdReaction', type: 'string', description: 'ID of the team (required for channel messages)', show: { teamsType: ['chatMessage'], chatMessageActions: ['setReaction', 'unsetReaction'] }, additionalParams: true, optional: true }, { label: 'Message ID [Set/Unset Reaction]', name: 'messageIdReaction', type: 'string', description: 'ID of the message to react to', show: { teamsType: ['chatMessage'], chatMessageActions: ['setReaction', 'unsetReaction'] }, additionalParams: true, optional: true }, { label: 'Reaction Type [Set Reaction]', name: 'reactionTypeSetReaction', type: 'options', options: [ { label: 'Like', name: 'like' }, { label: 'Heart', name: 'heart' }, { label: 'Laugh', name: 'laugh' }, { label: 'Surprised', name: 'surprised' }, { label: 'Sad', name: 'sad' }, { label: 'Angry', name: 'angry' } ], default: 'like', description: 'Type of reaction to set', show: { teamsType: ['chatMessage'], chatMessageActions: ['setReaction'] }, additionalParams: true, optional: true } ] } async init(nodeData: INodeData, _: string, options: any): Promise<any> { const teamsType = nodeData.inputs?.teamsType as string const channelActions = nodeData.inputs?.channelActions as string const chatActions = nodeData.inputs?.chatActions as string const chatMessageActions = nodeData.inputs?.chatMessageActions as string let actions: string[] = [] if (teamsType === 'channel') { actions = convertMultiOptionsToStringArray(channelActions) } else if (teamsType === 'chat') { actions = convertMultiOptionsToStringArray(chatActions) } else if (teamsType === 'chatMessage') { actions = convertMultiOptionsToStringArray(chatMessageActions) } let credentialData = await getCredentialData(nodeData.credential ?? '', options) credentialData = await refreshOAuth2Token(nodeData.credential ?? '', credentialData, options) const accessToken = getCredentialParam('access_token', credentialData, nodeData) if (!accessToken) { throw new Error('No access token found in credential') } const defaultParams = this.transformNodeInputsToToolArgs(nodeData) const teamsTools = createTeamsTools({ accessToken, actions, defaultParams, type: teamsType }) return teamsTools } transformNodeInputsToToolArgs(nodeData: INodeData): Record<string, any> { // Collect default parameters from inputs const defaultParams: Record<string, any> = {} // Channel parameters if (nodeData.inputs?.teamIdListChannels) defaultParams.teamIdListChannels = nodeData.inputs.teamIdListChannels if (nodeData.inputs?.maxResultsListChannels) defaultParams.maxResultsListChannels = nodeData.inputs.maxResultsListChannels if (nodeData.inputs?.teamIdGetChannel) defaultParams.teamIdGetChannel = nodeData.inputs.teamIdGetChannel if (nodeData.inputs?.channelIdGetChannel) defaultParams.channelIdGetChannel = nodeData.inputs.channelIdGetChannel if (nodeData.inputs?.teamIdCreateChannel) defaultParams.teamIdCreateChannel = nodeData.inputs.teamIdCreateChannel if (nodeData.inputs?.displayNameCreateChannel) defaultParams.displayNameCreateChannel = nodeData.inputs.displayNameCreateChannel if (nodeData.inputs?.descriptionCreateChannel) defaultParams.descriptionCreateChannel = nodeData.inputs.descriptionCreateChannel if (nodeData.inputs?.membershipTypeCreateChannel) defaultParams.membershipTypeCreateChannel = nodeData.inputs.membershipTypeCreateChannel if (nodeData.inputs?.teamIdUpdateChannel) defaultParams.teamIdUpdateChannel = nodeData.inputs.teamIdUpdateChannel if (nodeData.inputs?.channelIdUpdateChannel) defaultParams.channelIdUpdateChannel = nodeData.inputs.channelIdUpdateChannel if (nodeData.inputs?.displayNameUpdateChannel) defaultParams.displayNameUpdateChannel = nodeData.inputs.displayNameUpdateChannel if (nodeData.inputs?.teamIdDeleteChannel) defaultParams.teamIdDeleteChannel = nodeData.inputs.teamIdDeleteChannel if (nodeData.inputs?.channelIdDeleteChannel) defaultParams.channelIdDeleteChannel = nodeData.inputs.channelIdDeleteChannel if (nodeData.inputs?.teamIdChannelMembers) defaultParams.teamIdChannelMembers = nodeData.inputs.teamIdChannelMembers if (nodeData.inputs?.channelIdChannelMembers) defaultParams.channelIdChannelMembers = nodeData.inputs.channelIdChannelMembers if (nodeData.inputs?.userIdChannelMember) defaultParams.userIdChannelMember = nodeData.inputs.userIdChannelMember // Chat parameters if (nodeData.inputs?.maxResultsListChats) defaultParams.maxResultsListChats = nodeData.inputs.maxResultsListChats if (nodeData.inputs?.chatIdGetChat) defaultParams.chatIdGetChat = nodeData.inputs.chatIdGetChat if (nodeData.inputs?.chatTypeCreateChat) defaultParams.chatTypeCreateChat = nodeData.inputs.chatTypeCreateChat if (nodeData.inputs?.topicCreateChat) defaultParams.topicCreateChat = nodeData.inputs.topicCreateChat if (nodeData.inputs?.membersCreateChat) defaultParams.membersCreateChat = nodeData.inputs.membersCreateChat if (nodeData.inputs?.chatIdUpdateChat) defaultParams.chatIdUpdateChat = nodeData.inputs.chatIdUpdateChat if (nodeData.inputs?.topicUpdateChat) defaultParams.topicUpdateChat = nodeData.inputs.topicUpdateChat if (nodeData.inputs?.chatIdDeleteChat) defaultParams.chatIdDeleteChat = nodeData.inputs.chatIdDeleteChat if (nodeData.inputs?.chatIdChatMembers) defaultParams.chatIdChatMembers = nodeData.inputs.chatIdChatMembers if (nodeData.inputs?.userIdChatMember) defaultParams.userIdChatMember = nodeData.inputs.userIdChatMember if (nodeData.inputs?.chatIdPinMessage) defaultParams.chatIdPinMessage = nodeData.inputs.chatIdPinMessage if (nodeData.inputs?.messageIdPinMessage) defaultParams.messageIdPinMessage = nodeData.inputs.messageIdPinMessage // Chat Message parameters if (nodeData.inputs?.chatChannelIdListMessages) defaultParams.chatChannelIdListMessages = nodeData.inputs.chatChannelIdListMessages if (nodeData.inputs?.teamIdListMessages) defaultParams.teamIdListMessages = nodeData.inputs.teamIdListMessages if (nodeData.inputs?.maxResultsListMessages) defaultParams.maxResultsListMessages = nodeData.inputs.maxResultsListMessages if (nodeData.inputs?.chatChannelIdGetMessage) defaultParams.chatChannelIdGetMessage = nodeData.inputs.chatChannelIdGetMessage if (nodeData.inputs?.teamIdGetMessage) defaultParams.teamIdGetMessage = nodeData.inputs.teamIdGetMessage if (nodeData.inputs?.messageIdGetMessage) defaultParams.messageIdGetMessage = nodeData.inputs.messageIdGetMessage if (nodeData.inputs?.chatChannelIdSendMessage) defaultParams.chatChannelIdSendMessage = nodeData.inputs.chatChannelIdSendMessage if (nodeData.inputs?.teamIdSendMessage) defaultParams.teamIdSendMessage = nodeData.inputs.teamIdSendMessage if (nodeData.inputs?.messageBodySendMessage) defaultParams.messageBodySendMessage = nodeData.inputs.messageBodySendMessage if (nodeData.inputs?.contentTypeSendMessage) defaultParams.contentTypeSendMessage = nodeData.inputs.contentTypeSendMessage if (nodeData.inputs?.chatChannelIdUpdateMessage) defaultParams.chatChannelIdUpdateMessage = nodeData.inputs.chatChannelIdUpdateMessage if (nodeData.inputs?.teamIdUpdateMessage) defaultParams.teamIdUpdateMessage = nodeData.inputs.teamIdUpdateMessage if (nodeData.inputs?.messageIdUpdateMessage) defaultParams.messageIdUpdateMessage = nodeData.inputs.messageIdUpdateMessage if (nodeData.inputs?.chatChannelIdDeleteMessage) defaultParams.chatChannelIdDeleteMessage = nodeData.inputs.chatChannelIdDeleteMessage if (nodeData.inputs?.teamIdDeleteMessage) defaultParams.teamIdDeleteMessage = nodeData.inputs.teamIdDeleteMessage if (nodeData.inputs?.messageIdDeleteMessage) defaultParams.messageIdDeleteMessage = nodeData.inputs.messageIdDeleteMessage if (nodeData.inputs?.chatChannelIdReplyMessage) defaultParams.chatChannelIdReplyMessage = nodeData.inputs.chatChannelIdReplyMessage if (nodeData.inputs?.teamIdReplyMessage) defaultParams.teamIdReplyMessage = nodeData.inputs.teamIdReplyMessage if (nodeData.inputs?.messageIdReplyMessage) defaultParams.messageIdReplyMessage = nodeData.inputs.messageIdReplyMessage if (nodeData.inputs?.replyBodyReplyMessage) defaultParams.replyBodyReplyMessage = nodeData.inputs.replyBodyReplyMessage if (nodeData.inputs?.chatChannelIdReaction) defaultParams.chatChannelIdReaction = nodeData.inputs.chatChannelIdReaction if (nodeData.inputs?.teamIdReaction) defaultParams.teamIdReaction = nodeData.inputs.teamIdReaction if (nodeData.inputs?.messageIdReaction) defaultParams.messageIdReaction = nodeData.inputs.messageIdReaction if (nodeData.inputs?.reactionTypeSetReaction) defaultParams.reactionTypeSetReaction = nodeData.inputs.reactionTypeSetReaction return defaultParams } } module.exports = { nodeClass: MicrosoftTeams_Tools }