Add Free API support to DeepL Node (#1810)

This commit is contained in:
MedAliMarz 2021-05-30 19:33:43 +02:00 committed by GitHub
parent 1ec916e530
commit 07a9108e46
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 7 deletions

View file

@ -11,5 +11,21 @@ export class DeepLApi implements ICredentialType {
type: 'string' as NodePropertyTypes,
default: '',
},
{
displayName: 'API Plan',
name: 'apiPlan',
type: 'options' as NodePropertyTypes,
options: [
{
name: 'Pro Plan',
value: 'pro',
},
{
name: 'Free Plan',
value: 'free',
},
],
default: 'pro',
},
];
}

View file

@ -22,6 +22,15 @@ export async function deepLApiRequest(
headers: IDataObject = {},
) {
const proApiEndpoint = 'https://api.deepl.com/v2';
const freeApiEndpoint = 'https://api-free.deepl.com/v2';
const credentials = this.getCredentials('deepLApi');
if (credentials === undefined) {
throw new NodeOperationError(this.getNode(), 'No credentials got returned!');
}
const options: OptionsWithUri = {
headers: {
'Content-Type': 'application/json',
@ -29,7 +38,7 @@ export async function deepLApiRequest(
method,
body,
qs,
uri: uri || `https://api.deepl.com/v2${resource}`,
uri: uri || `${credentials.apiPlan === 'pro' ? proApiEndpoint : freeApiEndpoint}${resource}`,
json: true,
};
@ -42,12 +51,6 @@ export async function deepLApiRequest(
delete options.body;
}
const credentials = this.getCredentials('deepLApi');
if (credentials === undefined) {
throw new NodeOperationError(this.getNode(), 'No credentials got returned!');
}
options.qs.auth_key = credentials.apiKey;
return await this.helpers.request!(options);