initial
This commit is contained in:
commit
584abdb00e
13 changed files with 2815 additions and 0 deletions
77
wahaService.js
Normal file
77
wahaService.js
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
import axios from "axios";
|
||||
|
||||
const session = "session_01kxc62bk5fs8vh4v127k88a7j";
|
||||
const wahaBaseUrl = "http://inspiran.beetal-castor.ts.net:3100";
|
||||
const apiKey = process.env.WAHA_API_KEY;
|
||||
|
||||
const client = axios.create({
|
||||
baseURL: wahaBaseUrl,
|
||||
headers: {
|
||||
"X-API-KEY": apiKey,
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
});
|
||||
|
||||
export const wahaService = {
|
||||
getConfigStatus() {
|
||||
return {
|
||||
wahaBaseUrl,
|
||||
session,
|
||||
hasApiKey: !!apiKey
|
||||
};
|
||||
},
|
||||
|
||||
async getChats() {
|
||||
const response = await client.get(`/api/${session}/chats`, { timeout: 5000 });
|
||||
|
||||
if (!Array.isArray(response.data)) {
|
||||
throw new Error("Invalid chats response format from WAHA API");
|
||||
}
|
||||
|
||||
return response.data.map(chat => {
|
||||
let chatId = chat.id;
|
||||
if (chatId && typeof chatId === "object") {
|
||||
chatId = chatId._serialized || chatId.user || JSON.stringify(chatId);
|
||||
}
|
||||
return {
|
||||
id: chatId || chat.chatId || chat.name,
|
||||
name: chat.name || "Unknown Contact",
|
||||
unreadCount: chat.unreadCount || 0,
|
||||
lastMessage: chat.lastMessage?.body || chat.lastMessageText || "Click to open chat",
|
||||
timestamp: chat.lastMessage?.timestamp || new Date()
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
async getChatMessages(chatId) {
|
||||
const response = await client.get(`/api/${session}/chats/${chatId}/messages?downloadMedia=false&merge=true&limit=10`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
async getMyInfo(chatId) {
|
||||
const response = await client.get(`/api/${session}/me`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
async startTyping(chatId) {
|
||||
await client.post("/api/startTyping", {
|
||||
chatId,
|
||||
session
|
||||
}, { timeout: 3000 });
|
||||
},
|
||||
|
||||
async stopTyping(chatId) {
|
||||
await client.post("/api/stopTyping", {
|
||||
chatId,
|
||||
session
|
||||
}, { timeout: 2000 });
|
||||
},
|
||||
|
||||
async sendTextMessage(chatId, text) {
|
||||
const response = await client.post("/api/sendText", {
|
||||
chatId,
|
||||
text
|
||||
});
|
||||
return response.data;
|
||||
}
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue