n8n/packages/nodes-base/credentials/CrowdDevApi.credentials.ts
2023-07-18 17:18:06 +02:00

73 lines
1.6 KiB
TypeScript

import type {
IAuthenticateGeneric,
ICredentialTestRequest,
ICredentialType,
INodeProperties,
} from 'n8n-workflow';
export class CrowdDevApi implements ICredentialType {
name = 'crowdDevApi';
displayName = 'crowd.dev API';
documentationUrl = 'crowddev';
properties: INodeProperties[] = [
{
displayName: 'URL',
name: 'url',
type: 'string',
default: 'https://app.crowd.dev',
},
{
displayName: 'Tenant ID',
name: 'tenantId',
type: 'string',
default: '',
},
{
displayName: 'Token',
name: 'token',
type: 'string',
typeOptions: {
password: true,
},
default: '',
},
{
displayName: 'Ignore SSL Issues',
name: 'allowUnauthorizedCerts',
type: 'boolean',
description: 'Whether to connect even if SSL certificate validation is not possible',
default: false,
},
];
// This allows the credential to be used by other parts of n8n
// stating how this credential is injected as part of the request
// An example is the Http Request node that can make generic calls
// reusing this credential
authenticate: IAuthenticateGeneric = {
type: 'generic',
properties: {
headers: {
Authorization: '={{"Bearer " + $credentials.token}}',
},
},
};
// The block below tells how this credential can be tested
test: ICredentialTestRequest = {
request: {
method: 'POST',
baseURL: '={{$credentials.url.replace(/\\/$/, "") + "/api/tenant/" + $credentials.tenantId}}',
url: '/member/query',
skipSslCertificateValidation: '={{ $credentials.allowUnauthorizedCerts }}',
body: {
limit: 1,
offset: 0,
},
},
};
}