n8n-nodes-whatsapp-media-processor
Version:
Node n8n para processamento de mídia do WhatsApp com OpenAI
110 lines • 5.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WhatsappMediaProcessorApi = void 0;
const axios_1 = __importDefault(require("axios"));
class WhatsappMediaProcessorApi {
constructor() {
this.name = 'whatsappMediaProcessorApi';
this.displayName = 'WhatsApp Media Processor API';
this.documentationUrl = '';
this.properties = [
{
displayName: 'OpenAI API Key',
name: 'openaiApiKey',
type: 'string',
typeOptions: {
password: true,
},
default: '',
required: true,
description: 'Chave da API da OpenAI',
},
{
displayName: 'WhatsApp Cloud API Key',
name: 'whatsappApiKey',
type: 'string',
typeOptions: {
password: true,
},
default: '',
required: true,
description: 'Chave da API do WhatsApp Cloud',
},
{
displayName: 'WhatsApp Business ID',
name: 'whatsappBusinessId',
type: 'string',
default: '',
required: true,
description: 'ID da conta empresarial do WhatsApp',
},
{
displayName: 'Chave de Licença',
name: 'licenseKey',
type: 'string',
typeOptions: {
password: true,
},
default: '',
required: true,
description: 'Sua chave de licença para usar este nó',
},
];
// Definição de como testar as credenciais
this.test = {
request: {
baseURL: 'https://n8n.wizebot.com.br',
url: '/webhook/4972002d-c986-41c4-86c3-43e5b60c7e36',
method: 'POST',
body: {
licenseKey: '={{ $credentials.licenseKey }}',
},
},
};
}
async authenticate(credentials, requestOptions) {
var _a;
const licenseKey = credentials.licenseKey;
console.log(`[WhatsappMediaProcessorApi] Autenticando com licença: ${licenseKey.substring(0, 4)}...`);
// Sempre validar a licença com o servidor para garantir que está atualizada
try {
console.log('[WhatsappMediaProcessorApi] Enviando requisição para validar licença...');
const response = await axios_1.default.post('https://n8n.wizebot.com.br/webhook/4972002d-c986-41c4-86c3-43e5b60c7e36', { licenseKey }, {
timeout: 10000,
headers: {
'Content-Type': 'application/json',
'User-Agent': 'WhatsappMediaProcessor/1.0'
}
});
console.log(`[WhatsappMediaProcessorApi] Resposta recebida: ${JSON.stringify(response.data)}`);
const isValid = ((_a = response.data) === null || _a === void 0 ? void 0 : _a.valid) === true;
WhatsappMediaProcessorApi.licenseCache.set(licenseKey, isValid);
if (!isValid) {
console.error('[WhatsappMediaProcessorApi] Licença inválida!');
throw new Error('Chave de licença inválida');
}
console.log('[WhatsappMediaProcessorApi] Licença validada com sucesso!');
}
catch (error) {
console.error(`[WhatsappMediaProcessorApi] Erro ao validar licença: ${(error === null || error === void 0 ? void 0 : error.message) || 'Erro desconhecido'}`);
// Se for um erro de rede, verificar o cache como fallback
if ((error === null || error === void 0 ? void 0 : error.code) === 'ECONNREFUSED' || (error === null || error === void 0 ? void 0 : error.code) === 'ETIMEDOUT' || (error === null || error === void 0 ? void 0 : error.code) === 'ENOTFOUND') {
console.log('[WhatsappMediaProcessorApi] Erro de conexão, verificando cache...');
if (WhatsappMediaProcessorApi.licenseCache.has(licenseKey) &&
WhatsappMediaProcessorApi.licenseCache.get(licenseKey) === true) {
console.log('[WhatsappMediaProcessorApi] Licença válida encontrada em cache!');
return requestOptions;
}
}
// Para qualquer outro erro ou se não encontrou no cache, lançar erro
throw new Error(`Erro ao validar licença: ${(error === null || error === void 0 ? void 0 : error.message) || 'Erro desconhecido'}`);
}
return requestOptions;
}
}
exports.WhatsappMediaProcessorApi = WhatsappMediaProcessorApi;
WhatsappMediaProcessorApi.licenseCache = new Map();
//# sourceMappingURL=WhatsappMediaProcessorApi.credentials.js.map