mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-29 05:01:10 +03:00
2387a06ce4
* add teams, gmail, outlook tools * update docs link * update credentials for oauth2 * add jira tool * add google drive, google calendar, google sheets tools, powerpoint, excel, word doc loader * update jira logo * Refactor Gmail and Outlook tools to remove maxOutputLength parameter and enhance request handling. Update response formatting to include parameters in the output. Adjust Google Drive tools to simplify success messages by removing unnecessary parameter details. * Update pnpm-lock.yaml * add google docs
1013 lines
40 KiB
TypeScript
1013 lines
40 KiB
TypeScript
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 }
|