mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-28 15:27:03 +02:00
55 lines
1.2 KiB
TypeScript
55 lines
1.2 KiB
TypeScript
import type {
|
|
ICredentialDataDecryptedObject,
|
|
ICredentialTestRequest,
|
|
ICredentialType,
|
|
IHttpRequestOptions,
|
|
INodeProperties,
|
|
} from 'n8n-workflow';
|
|
import { getUrl } from './common/http';
|
|
|
|
export class ConvertKitApi implements ICredentialType {
|
|
name = 'convertKitApi';
|
|
|
|
displayName = 'ConvertKit API';
|
|
|
|
documentationUrl = 'convertkit';
|
|
|
|
properties: INodeProperties[] = [
|
|
{
|
|
displayName: 'API Secret',
|
|
name: 'apiSecret',
|
|
type: 'string',
|
|
default: '',
|
|
typeOptions: {
|
|
password: true,
|
|
},
|
|
},
|
|
];
|
|
|
|
async authenticate(credentials: ICredentialDataDecryptedObject, options: IHttpRequestOptions) {
|
|
const url = getUrl(options);
|
|
const secret = {
|
|
api_secret: credentials.apiSecret as string,
|
|
};
|
|
// it's a webhook so include the api secret on the body
|
|
if (url?.includes('/automations/hooks')) {
|
|
options.body = options.body || {};
|
|
if (typeof options.body === 'object') {
|
|
Object.assign(options.body, secret);
|
|
}
|
|
} else {
|
|
options.qs = options.qs || {};
|
|
if (typeof options.qs === 'object') {
|
|
Object.assign(options.qs, secret);
|
|
}
|
|
}
|
|
return options;
|
|
}
|
|
|
|
test: ICredentialTestRequest = {
|
|
request: {
|
|
url: 'https://api.convertkit.com/v3/account',
|
|
},
|
|
};
|
|
}
|