From 87f965e9055904486f5fd815c060abb4376296a0 Mon Sep 17 00:00:00 2001 From: Daniil Zobov Date: Mon, 20 May 2024 15:47:01 +0300 Subject: [PATCH] feat(Telegram Node): Add support for local bot api server (#8437) Co-authored-by: Jonathan Bennetts --- .../src/utils/testData/credentialTypeTestData.ts | 9 ++++++++- .../nodes-base/credentials/TelegramApi.credentials.ts | 9 ++++++++- packages/nodes-base/nodes/Telegram/GenericFunctions.ts | 2 +- packages/nodes-base/nodes/Telegram/Telegram.node.ts | 2 +- .../nodes-base/nodes/Telegram/TelegramTrigger.node.ts | 2 +- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/editor-ui/src/utils/testData/credentialTypeTestData.ts b/packages/editor-ui/src/utils/testData/credentialTypeTestData.ts index b49301a85..f229fc9e0 100644 --- a/packages/editor-ui/src/utils/testData/credentialTypeTestData.ts +++ b/packages/editor-ui/src/utils/testData/credentialTypeTestData.ts @@ -26,10 +26,17 @@ export const credentialTypeTelegram = { description: 'Chat with the bot father to obtain the access token', }, + { + displayName: 'Base URL', + name: 'baseUrl', + type: 'string', + default: 'https://api.telegram.org', + description: 'Base URL for Telegram Bot API', + }, ], test: { request: { - baseURL: '=https://api.telegram.org/bot{{$credentials.accessToken}}', + baseURL: '={{$credentials.baseUrl}}/bot{{$credentials.accessToken}}', url: '/getMe', }, }, diff --git a/packages/nodes-base/credentials/TelegramApi.credentials.ts b/packages/nodes-base/credentials/TelegramApi.credentials.ts index 053eee15d..73920ca1d 100644 --- a/packages/nodes-base/credentials/TelegramApi.credentials.ts +++ b/packages/nodes-base/credentials/TelegramApi.credentials.ts @@ -17,11 +17,18 @@ export class TelegramApi implements ICredentialType { description: 'Chat with the bot father to obtain the access token', }, + { + displayName: 'Base URL', + name: 'baseUrl', + type: 'string', + default: 'https://api.telegram.org', + description: 'Base URL for Telegram Bot API', + }, ]; test: ICredentialTestRequest = { request: { - baseURL: '=https://api.telegram.org/bot{{$credentials.accessToken}}', + baseURL: '={{$credentials.baseUrl}}/bot{{$credentials.accessToken}}', url: '/getMe', }, }; diff --git a/packages/nodes-base/nodes/Telegram/GenericFunctions.ts b/packages/nodes-base/nodes/Telegram/GenericFunctions.ts index 473709d7a..cbffe21d5 100644 --- a/packages/nodes-base/nodes/Telegram/GenericFunctions.ts +++ b/packages/nodes-base/nodes/Telegram/GenericFunctions.ts @@ -202,7 +202,7 @@ export async function apiRequest( const options: IRequestOptions = { headers: {}, method, - uri: `https://api.telegram.org/bot${credentials.accessToken}/${endpoint}`, + uri: `${credentials.baseUrl}/bot${credentials.accessToken}/${endpoint}`, body, qs: query, json: true, diff --git a/packages/nodes-base/nodes/Telegram/Telegram.node.ts b/packages/nodes-base/nodes/Telegram/Telegram.node.ts index 4790ad2ce..e9f7182ea 100644 --- a/packages/nodes-base/nodes/Telegram/Telegram.node.ts +++ b/packages/nodes-base/nodes/Telegram/Telegram.node.ts @@ -2067,7 +2067,7 @@ export class Telegram implements INodeType { { json: false, encoding: null, - uri: `https://api.telegram.org/file/bot${credentials.accessToken}/${filePath}`, + uri: `${credentials.baseUrl}/bot${credentials.accessToken}/${filePath}`, resolveWithFullResponse: true, useStream: true, }, diff --git a/packages/nodes-base/nodes/Telegram/TelegramTrigger.node.ts b/packages/nodes-base/nodes/Telegram/TelegramTrigger.node.ts index 5f1a9f21d..3ced0061f 100644 --- a/packages/nodes-base/nodes/Telegram/TelegramTrigger.node.ts +++ b/packages/nodes-base/nodes/Telegram/TelegramTrigger.node.ts @@ -293,7 +293,7 @@ export class TelegramTrigger implements INodeType { { json: false, encoding: null, - uri: `https://api.telegram.org/file/bot${credentials.accessToken}/${file_path}`, + uri: `${credentials.baseUrl}/file/bot${credentials.accessToken}/${file_path}`, resolveWithFullResponse: true, }, );