import { INodeProperties } from 'n8n-workflow';
export const messageOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['message'],
},
},
options: [
{
name: 'Delete',
value: 'delete',
description: 'Delete a message',
action: 'Delete a message',
},
{
name: 'Get',
value: 'get',
description: 'Get a message',
action: 'Get a message',
},
{
name: 'Send Private',
value: 'sendPrivate',
description: 'Send a private message',
action: 'Send a private message',
},
{
name: 'Send to Stream',
value: 'sendStream',
description: 'Send a message to stream',
action: 'Send a message to a stream',
},
{
name: 'Update',
value: 'update',
description: 'Update a message',
action: 'Update a message',
},
{
name: 'Upload a File',
value: 'updateFile',
action: 'Upload a file',
},
],
default: 'sendPrivate',
},
];
export const messageFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* message:sendPrivate */
/* -------------------------------------------------------------------------- */
{
// eslint-disable-next-line n8n-nodes-base/node-param-display-name-wrong-for-dynamic-multi-options
displayName: 'To',
name: 'to',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getUsers',
},
required: true,
default: [],
displayOptions: {
show: {
resource: ['message'],
operation: ['sendPrivate'],
},
},
description:
'The destination stream, or a comma-separated list containing the usernames (emails) of the recipients. Choose from the list, or specify IDs using an expression.',
},
{
displayName: 'Content',
name: 'content',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['message'],
operation: ['sendPrivate'],
},
},
description: 'The content of the message',
},
/* -------------------------------------------------------------------------- */
/* message:sendStream */
/* -------------------------------------------------------------------------- */
{
displayName: 'Stream Name or ID',
name: 'stream',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getStreams',
},
required: true,
default: '',
displayOptions: {
show: {
resource: ['message'],
operation: ['sendStream'],
},
},
description:
'The destination stream, or a comma-separated list containing the usernames (emails) of the recipients. Choose from the list, or specify an ID using an expression.',
},
{
displayName: 'Topic Name or ID',
name: 'topic',
type: 'options',
typeOptions: {
loadOptionsDependsOn: ['stream'],
loadOptionsMethod: 'getTopics',
},
required: true,
displayOptions: {
show: {
resource: ['message'],
operation: ['sendStream'],
},
},
default: '',
description:
'The topic of the message. Only required if type is stream, ignored otherwise. Choose from the list, or specify an ID using an expression.',
},
{
displayName: 'Content',
name: 'content',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['message'],
operation: ['sendStream'],
},
},
description: 'The content of the message',
},
/* -------------------------------------------------------------------------- */
/* message:update */
/* -------------------------------------------------------------------------- */
{
displayName: 'Message ID',
name: 'messageId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['message'],
operation: ['update'],
},
},
description: 'Unique identifier for the message',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: ['message'],
operation: ['update'],
},
},
options: [
{
displayName: 'Content',
name: 'content',
type: 'string',
default: '',
description: 'The content of the message',
},
{
displayName: 'Propagate Mode',
name: 'propagateMode',
type: 'options',
options: [
{
name: 'Change One',
value: 'changeOne',
},
{
name: 'Change Later',
value: 'changeLater',
},
{
name: 'Change All',
value: 'changeAll',
},
],
default: 'changeOne',
description:
'Which message(s) should be edited: just the one indicated in message_id, messages in the same topic that had been sent after this one, or all of them',
},
{
displayName: 'Topic',
name: 'topic',
type: 'string',
default: '',
description: 'The topic of the message. Only required for stream messages.',
},
],
},
/* -------------------------------------------------------------------------- */
/* message:get */
/* -------------------------------------------------------------------------- */
{
displayName: 'Message ID',
name: 'messageId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['message'],
operation: ['get'],
},
},
description: 'Unique identifier for the message',
},
/* -------------------------------------------------------------------------- */
/* message:delete */
/* -------------------------------------------------------------------------- */
{
displayName: 'Message ID',
name: 'messageId',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: ['message'],
operation: ['delete'],
},
},
description: 'Unique identifier for the message',
},
/* -------------------------------------------------------------------------- */
/* message:updateFile */
/* -------------------------------------------------------------------------- */
{
displayName: 'Binary Property',
name: 'dataBinaryProperty',
type: 'string',
required: true,
default: 'data',
displayOptions: {
show: {
resource: ['message'],
operation: ['updateFile'],
},
},
description: 'Name of the binary property to which to write the data of the read file',
},
];