Credentials, UI setup.

Has everything but a generic functions setup. Requires more functionality to give purpose to having OAuth2 authentication in the first place.
This commit is contained in:
Rupenieks 2020-06-15 15:33:28 +02:00
parent acfc4fc39d
commit fd970b1325
3 changed files with 78 additions and 2 deletions

View file

@ -0,0 +1,47 @@
import {
ICredentialType,
NodePropertyTypes,
} from 'n8n-workflow';
export class DiscordOAuth2Api implements ICredentialType {
name = 'discordOAuth2Api';
extends = [
'oAuth2Api',
];
displayName = 'Discord OAuth2 API';
properties = [
{
displayName: 'Authorization URL',
name: 'authUrl',
type: 'hidden' as NodePropertyTypes,
default: 'https://discord.com/api/oauth2/authorize',
required: true,
},
{
displayName: 'Access Token URL',
name: 'accessTokenUrl',
type: 'hidden' as NodePropertyTypes,
default: 'https://discord.com/api/oauth2/token',
required: true,
},
{
displayName: 'Scope',
name: 'scope',
type: 'string' as NodePropertyTypes,
default: '',
},
{
displayName: 'Auth URI Query Parameters',
name: 'authQueryParameters',
type: 'hidden' as NodePropertyTypes,
default: '',
},
{
displayName: 'Authentication',
name: 'authentication',
type: 'hidden' as NodePropertyTypes,
default: 'body',
},
];
}

View file

@ -21,7 +21,37 @@ export class Discord implements INodeType {
}, },
inputs: ['main'], inputs: ['main'],
outputs: ['main'], outputs: ['main'],
credentials: [
{
name: 'discordOAuth2Api',
required: true,
displayOptions: {
show: {
authentication: [
'oAuth2',
],
},
},
},
],
properties: [ properties: [
{
displayName: 'Authentication',
name: 'authentication',
type: 'options',
options: [
{
name: 'None',
value: 'none',
},
{
name: 'OAuth2',
value: 'oAuth2',
},
],
default: 'none',
description: 'The resource to operate on.',
},
{ {
displayName: 'Webhook URL', displayName: 'Webhook URL',
name: 'webhookUri', name: 'webhookUri',
@ -45,8 +75,6 @@ export class Discord implements INodeType {
], ],
}; };
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> { async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
const items = this.getInputData(); const items = this.getInputData();
const returnData: IDataObject[] = []; const returnData: IDataObject[] = [];

View file

@ -45,6 +45,7 @@
"dist/credentials/CodaApi.credentials.js", "dist/credentials/CodaApi.credentials.js",
"dist/credentials/CopperApi.credentials.js", "dist/credentials/CopperApi.credentials.js",
"dist/credentials/CalendlyApi.credentials.js", "dist/credentials/CalendlyApi.credentials.js",
"dist/credentials/DiscordOAuth2Api.credentials.js",
"dist/credentials/DisqusApi.credentials.js", "dist/credentials/DisqusApi.credentials.js",
"dist/credentials/DriftApi.credentials.js", "dist/credentials/DriftApi.credentials.js",
"dist/credentials/DropboxApi.credentials.js", "dist/credentials/DropboxApi.credentials.js",