const { sessionService } = require('../../core'); // Import from core/index.js const { createWhatsApp } = require('../../core/baileys'); // Import from core/index.js const generateId = require('../../utils/generateId.util'); const waInstance = { wa: null, }; exports.newConnect = async ctx => { try { const { phone } = ctx.query; const whatsApp1 = await createWhatsApp(phone); const qr = await whatsApp1.start(); waInstance.wa = whatsApp1; ctx.assert(whatsApp1, 503, 'No available connections'); const { sessionId } = sessionService.createSession(phone, whatsApp1); return { qr }; } catch (error) { console.error('create connection error', error); ctx.assert(null, 500, 'Failed to create connection or generate QR code.'); // const wa = findConnection('from'); // wa.senedTextMessage(to, text); } }; exports.testSend = async ctx => { const { from, to, content } = ctx.request.body; waInstance.wa.sendTextMessage(to, content); return { waInstance, ret: 'Message sent successfully' }; }; exports.getAll = async ctx => { const sessions = sessionService.sessions; return Array.from(sessions); }; /** * @deprecated */ exports.getIn = async ctx => { // Wait for at least one connection to be established (or handle the case where no connections are available) // await new Promise(resolve => { // const checkConnections = () => { // if (websocketManager.getConnections().length > 0) { // resolve(); // } else { // setTimeout(checkConnections, 100); // Check again after 100ms // } // }; // checkConnections(); // }); // const availableWs = websocketManager.getAvailableConnection(); // if (!availableWs) { // // ctx.status = 503; // // ctx.body = { message: 'No available connections' }; // ctx.assert(availableWs, 503, 'No available connections'); // return; // } // // return availableWs; // const { sessionId, url } = websocketService.createSession(availableWs); // return { sessionId, url, message: 'Connection established' }; // availableWs };