Files
clinera-site/debug-waha.js
T

129 lines
4.1 KiB
JavaScript

// Debug WAHA connection and message sending
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function debugWaha() {
console.log('🔍 DEBUGGING WAHA CONNECTION...');
console.log('='.repeat(50));
try {
// 1. Check WAHA status
console.log('1️⃣ Testing WAHA API directly...');
const wahaResponse = await fetch('http://localhost:3005/api/sessions', {
headers: { 'X-Api-Key': '992659f827564646ba3ab95ead50adc9' }
});
if (wahaResponse.ok) {
const sessions = await wahaResponse.json();
console.log('✅ WAHA API responding');
console.log(' Sessions:', sessions.length);
sessions.forEach(session => {
console.log(` - ${session.name}: ${session.status}`);
});
} else {
console.log('❌ WAHA API failed:', wahaResponse.status);
return;
}
// 2. Check clinic WAHA status in database
console.log('\n2️⃣ Checking clinic WAHA status...');
const clinic = await prisma.clinic.findFirst();
console.log(` Clinic: ${clinic.name}`);
console.log(` WAHA Status: ${clinic.wahaStatus}`);
console.log(` WAHA Session: ${clinic.wahaSessionId}`);
console.log(` Last Checked: ${clinic.wahaLastChecked}`);
if (clinic.wahaStatus !== 'connected') {
console.log('❌ Clinic WAHA status is not "connected"');
// Update clinic status
await prisma.clinic.update({
where: { id: clinic.id },
data: {
wahaStatus: 'connected',
wahaSessionId: 'default',
wahaLastChecked: new Date()
}
});
console.log('✅ Fixed clinic WAHA status');
}
// 3. Test sending a message directly
console.log('\n3️⃣ Testing direct message send...');
const testMessage = {
session: 'default',
chatId: '+96170774480@c.us',
text: 'Test message from Clinera debug script'
};
const sendResponse = await fetch('http://localhost:3005/api/sendText', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Api-Key': '992659f827564646ba3ab95ead50adc9'
},
body: JSON.stringify(testMessage)
});
if (sendResponse.ok) {
const result = await sendResponse.json();
console.log('✅ Direct message send successful');
console.log(' Result:', result);
} else {
console.log('❌ Direct message send failed:', sendResponse.status, await sendResponse.text());
}
// 4. Test using Clinera's sendMessage function
console.log('\n4️⃣ Testing Clinera sendMessage function...');
try {
const { sendMessage } = await import('./src/lib/waha.js');
const clineraResult = await sendMessage('+96170774480', 'Test via Clinera sendMessage function');
console.log('✅ Clinera sendMessage successful');
console.log(' Result:', clineraResult);
} catch (error) {
console.log('❌ Clinera sendMessage failed:', error.message);
}
// 5. Check message log
console.log('\n5️⃣ Checking message log...');
const messageCount = await prisma.messageLog.count();
const recentMessages = await prisma.messageLog.findMany({
take: 3,
orderBy: { createdAt: 'desc' },
select: {
direction: true,
phone: true,
status: true,
message: true,
sentAt: true,
createdAt: true
}
});
console.log(` Total messages: ${messageCount}`);
if (recentMessages.length > 0) {
console.log(' Recent messages:');
recentMessages.forEach(msg => {
console.log(` ${msg.direction}${msg.phone}: "${msg.message.substr(0, 30)}..." (${msg.status})`);
});
} else {
console.log(' No messages found');
}
console.log('\n📊 Summary:');
console.log(' - WAHA API: Working ✅');
console.log(' - Clinic Status: Fixed ✅');
console.log(` - Message Log: ${messageCount} entries`);
} catch (error) {
console.error('❌ Debug failed:', error);
} finally {
await prisma.$disconnect();
}
}
debugWaha().catch(console.error);