diff --git a/packages/nodes-base/credentials/DiscordApi.credentials.ts b/packages/nodes-base/credentials/DiscordApi.credentials.ts deleted file mode 100644 index 96bd2fb2ea..0000000000 --- a/packages/nodes-base/credentials/DiscordApi.credentials.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { - ICredentialType, - NodePropertyTypes, -} from 'n8n-workflow'; - - -export class DiscordApi implements ICredentialType { - name = 'discordApi'; - displayName = 'Discord API'; - properties = [ - { - displayName: 'Webhook URI', - name: 'webhookUri', - type: 'string' as NodePropertyTypes, - default: '', - }, - ]; -} diff --git a/packages/nodes-base/nodes/DiscordWebhook/DiscordWebhook.node.ts b/packages/nodes-base/nodes/Discord/Discord.node.ts similarity index 62% rename from packages/nodes-base/nodes/DiscordWebhook/DiscordWebhook.node.ts rename to packages/nodes-base/nodes/Discord/Discord.node.ts index 1587b56c07..6015a2bf1b 100644 --- a/packages/nodes-base/nodes/DiscordWebhook/DiscordWebhook.node.ts +++ b/packages/nodes-base/nodes/Discord/Discord.node.ts @@ -6,27 +6,21 @@ import { INodeType, } from 'n8n-workflow'; -export class DiscordWebhook implements INodeType { +export class Discord implements INodeType { description: INodeTypeDescription = { - displayName: 'Discord Webhook', - name: 'discordwebhook', + displayName: 'Discord', + name: 'discord', icon: 'file:discord.png', group: ['output'], version: 1, - subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', + subtitle: '={{$parameter["resource"]}}', description: 'Sends data to Discord', defaults: { - name: 'Discord Webhook', + name: 'Discord', color: '#7289da', }, inputs: ['main'], outputs: ['main'], - credentials: [ - { - name: 'discordApi', - required: true, - } - ], properties: [ { displayName: 'Resource', @@ -34,41 +28,14 @@ export class DiscordWebhook implements INodeType { type: 'options', options: [ { - name: 'Message', - value: 'message', + name: 'Webhook', + value: 'webhook', }, ], - default: 'message', + default: 'webhook', description: 'The resource to operate on.', }, - - - // ---------------------------------- - // operations - // ---------------------------------- - { - displayName: 'Operation', - name: 'operation', - type: 'options', - displayOptions: { - show: { - resource: [ - 'message', - ], - }, - }, - options: [ - { - name: 'Post', - value: 'post', - description: 'Post a message into a channel', - }, - ], - default: 'post', - description: 'The operation to perform.', - }, - // ---------------------------------- // message // ---------------------------------- @@ -76,6 +43,23 @@ export class DiscordWebhook implements INodeType { // ---------------------------------- // message:post // ---------------------------------- + { + displayName: 'Webhook URL', + name: 'webhookUri', + type: 'string', + typeOptions: { + alwaysOpenEditWindow: true, + }, + default: '', + displayOptions: { + show: { + resource: [ + 'webhook', + ], + }, + }, + description: 'The webhook url', + }, { displayName: 'Text', name: 'text', @@ -86,11 +70,8 @@ export class DiscordWebhook implements INodeType { default: '', displayOptions: { show: { - operation: [ - 'post' - ], resource: [ - 'message', + 'webhook', ], }, }, @@ -106,13 +87,6 @@ export class DiscordWebhook implements INodeType { const returnData: IDataObject[] = []; let responseData; - const credentials = this.getCredentials('discordApi'); - - if (credentials === undefined) { - throw new Error('No credentials got returned!'); - } - - let operation: string; let resource: string; let requestMethod = 'POST'; @@ -120,20 +94,14 @@ export class DiscordWebhook implements INodeType { let body: IDataObject; for (let i = 0; i < items.length; i++) { + const webhookUri = this.getNodeParameter('webhookUri', i) as string; body = {}; resource = this.getNodeParameter('resource', i) as string; - operation = this.getNodeParameter('operation', i) as string; - if (resource === 'message') { - if (operation === 'post') { - // ---------------------------------- - // message:post - // ---------------------------------- - - requestMethod = 'POST'; - body.content = this.getNodeParameter('text', i) as string; - } + if (resource === 'webhook') { + requestMethod = 'POST'; + body.content = this.getNodeParameter('text', i) as string; } else { throw new Error(`The resource "${resource}" is not known!`); } @@ -141,7 +109,7 @@ export class DiscordWebhook implements INodeType { const options = { method: requestMethod, body, - uri: `${credentials.webhookUri}`, + uri: `${webhookUri}`, headers: { 'content-type': 'application/json; charset=utf-8' }, diff --git a/packages/nodes-base/nodes/DiscordWebhook/discord.png b/packages/nodes-base/nodes/Discord/discord.png similarity index 100% rename from packages/nodes-base/nodes/DiscordWebhook/discord.png rename to packages/nodes-base/nodes/Discord/discord.png diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index e48c7ca9fe..b932531a1a 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -51,8 +51,7 @@ "dist/credentials/TelegramApi.credentials.js", "dist/credentials/TrelloApi.credentials.js", "dist/credentials/TwilioApi.credentials.js", - "dist/credentials/TypeformApi.credentials.js", - "dist/credentials/DiscordApi.credentials.js" + "dist/credentials/TypeformApi.credentials.js" ], "nodes": [ "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", @@ -65,7 +64,7 @@ "dist/nodes/Chargebee/ChargebeeTrigger.node.js", "dist/nodes/Cron.node.js", "dist/nodes/Dropbox/Dropbox.node.js", - "dist/nodes/DiscordWebhook/DiscordWebhook.node.js", + "dist/nodes/Discord/Discord.node.js", "dist/nodes/EditImage.node.js", "dist/nodes/EmailReadImap.node.js", "dist/nodes/EmailSend.node.js",