diff --git a/packages/nodes-base/credentials/DiscordOAuth2Api.credentials.ts b/packages/nodes-base/credentials/DiscordOAuth2Api.credentials.ts index d0a026507e..888ec100a2 100644 --- a/packages/nodes-base/credentials/DiscordOAuth2Api.credentials.ts +++ b/packages/nodes-base/credentials/DiscordOAuth2Api.credentials.ts @@ -1,5 +1,7 @@ import type { ICredentialType, INodeProperties } from 'n8n-workflow'; +const defaultScopes = ['identify', 'guilds', 'guilds.join', 'bot']; + export class DiscordOAuth2Api implements ICredentialType { name = 'discordOAuth2Api'; @@ -39,18 +41,50 @@ export class DiscordOAuth2Api implements ICredentialType { default: 'https://discord.com/api/oauth2/token', required: true, }, - { - displayName: 'Scope', - name: 'scope', - type: 'hidden', - default: 'identify guilds guilds.join bot', - required: true, - }, { displayName: 'Auth URI Query Parameters', name: 'authQueryParameters', type: 'hidden', default: 'permissions=1642758929655', }, + + { + displayName: 'Custom Scopes', + name: 'customScopes', + type: 'boolean', + default: false, + description: 'Define custom scopes', + }, + { + displayName: + 'The default scopes needed for the node to work are already set, If you change these the node may not function correctly.', + name: 'customScopesNotice', + type: 'notice', + default: '', + displayOptions: { + show: { + customScopes: [true], + }, + }, + }, + { + displayName: 'Enabled Scopes', + name: 'enabledScopes', + type: 'string', + displayOptions: { + show: { + customScopes: [true], + }, + }, + default: defaultScopes.join(' '), + description: 'Scopes that should be enabled', + }, + { + displayName: 'Scope', + name: 'scope', + type: 'hidden', + default: + '={{$self["customScopes"] ? $self["enabledScopes"] : "' + defaultScopes.join(' ') + '"}}', + }, ]; }