Finalização de implementação do controle do botão restore
parent
408bb16e87
commit
330299726d
|
@ -8,6 +8,10 @@ import UpdateWhatsAppService from "../services/WhatsappService/UpdateWhatsAppSer
|
||||||
import { restartWhatsSession } from "../helpers/RestartWhatsSession";
|
import { restartWhatsSession } from "../helpers/RestartWhatsSession";
|
||||||
|
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
import { getIO } from "../libs/socket";
|
||||||
|
import { stat } from "fs";
|
||||||
|
|
||||||
|
let lstRestore: any = []
|
||||||
|
|
||||||
// import { WWebJsw } from "../../WWebJS/session-bd_40"
|
// import { WWebJsw } from "../../WWebJS/session-bd_40"
|
||||||
|
|
||||||
|
@ -36,16 +40,51 @@ const update = async (req: Request, res: Response): Promise<Response> => {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const restart = async (req: Request, res: Response): Promise<Response> => {
|
const restart = async (req: Request, res: Response): Promise<Response> => {
|
||||||
|
|
||||||
const { whatsappId } = req.params;
|
const { whatsappId } = req.params;
|
||||||
|
|
||||||
console.log('FROM REQUEST WHATSAPP ID: ', whatsappId)
|
const io = getIO();
|
||||||
|
|
||||||
|
if (Object.keys(req.body).length > 0) {
|
||||||
|
|
||||||
|
for (let i = 0; i < lstRestore.length; i++) {
|
||||||
|
|
||||||
|
io.emit("whatsappSession", {
|
||||||
|
action: "update",
|
||||||
|
session: { 'id': +lstRestore[i].id, 'disabled': true }
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status(200).json({});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const whatsapp = await ShowWhatsAppService(whatsappId);
|
const whatsapp = await ShowWhatsAppService(whatsappId);
|
||||||
|
|
||||||
restartWhatsSession(whatsapp, true)
|
restartWhatsSession(whatsapp, true)
|
||||||
//restartWhatsSession(whatsapp)
|
|
||||||
|
lstRestore.push({ 'id': +whatsappId, 'disabled': true })
|
||||||
|
|
||||||
|
io.emit("whatsappSession", {
|
||||||
|
action: "update",
|
||||||
|
session: { 'id': +whatsappId, 'disabled': true }
|
||||||
|
});
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
|
||||||
|
let whatsapp = lstRestore.shift();
|
||||||
|
|
||||||
|
whatsapp.disabled = false
|
||||||
|
|
||||||
|
io.emit("whatsappSession", {
|
||||||
|
action: "update",
|
||||||
|
session: whatsapp
|
||||||
|
});
|
||||||
|
|
||||||
|
}, 25000);
|
||||||
|
|
||||||
return res.status(200).json({ message: "Starting session." });
|
return res.status(200).json({ message: "Starting session." });
|
||||||
};
|
};
|
||||||
|
@ -61,14 +100,14 @@ const remove = async (req: Request, res: Response): Promise<Response> => {
|
||||||
await wbot.logout();
|
await wbot.logout();
|
||||||
|
|
||||||
|
|
||||||
// TEST DEL
|
// TEST DEL
|
||||||
// removeWbot(+whatsapp.id)
|
// removeWbot(+whatsapp.id)
|
||||||
|
|
||||||
// await removeDir(path.join(process.cwd(), '.wwebjs_auth', 'sessions', `session-bd_${whatsappId}`))
|
// await removeDir(path.join(process.cwd(), '.wwebjs_auth', 'sessions', `session-bd_${whatsappId}`))
|
||||||
|
|
||||||
// console.log('REMOVEU!!!!!!!!!!!!!!!!!!!!!')
|
// console.log('REMOVEU!!!!!!!!!!!!!!!!!!!!!')
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
return res.status(200).json({ message: "Session disconnected." });
|
return res.status(200).json({ message: "Session disconnected." });
|
||||||
|
|
|
@ -9,7 +9,7 @@ const sendMessageMultiSession = async (ticket: Ticket, body?: any, quotedMsgSeri
|
||||||
|
|
||||||
const listWhatsapp: any = await ListWhatsAppsNumber(ticket.whatsappId, 'CONNECTED')
|
const listWhatsapp: any = await ListWhatsAppsNumber(ticket.whatsappId, 'CONNECTED')
|
||||||
|
|
||||||
if (listWhatsapp.length > 1) {
|
if (listWhatsapp.length > 0) {
|
||||||
|
|
||||||
for (let w = 0; w < listWhatsapp.length; w++) {
|
for (let w = 0; w < listWhatsapp.length; w++) {
|
||||||
|
|
||||||
|
|
|
@ -113,17 +113,19 @@ async function searchWhatsappCache(id: string, status: string) {
|
||||||
|
|
||||||
if (redis.status !== 'connect') return null
|
if (redis.status !== 'connect') return null
|
||||||
|
|
||||||
|
|
||||||
|
const number_cache: any = await redis.hgetall(`whatsapp:${id}`)
|
||||||
|
|
||||||
|
if(Object.entries(number_cache).length == 0){
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('NUMBER_CACHED: ', number_cache)
|
||||||
|
|
||||||
// @x:foo @y:bar
|
// @x:foo @y:bar
|
||||||
|
|
||||||
// const response: any = await redis.call('FT.SEARCH', 'idx_whatsapp', `(@status:*${status}*) (@number:*${number}*)`, 'SORTBY', 'status', 'ASC')
|
const response: any = await redis.call('FT.SEARCH', 'idx_whatsapp', `(@status:*${status}*) (@number:*${number_cache.number}*)`, 'SORTBY', 'status', 'ASC')
|
||||||
|
|
||||||
// const response: any = await redis.call('FT.SEARCH', 'idx_whatsapp', `(@id:*${id}*))`)
|
|
||||||
|
|
||||||
const response: any = []
|
|
||||||
|
|
||||||
const number_cache: any = await redis.hgetall(`whatsapp:${14}`)
|
|
||||||
|
|
||||||
console.log('NUMBER CACHED: ', number_cache)
|
|
||||||
|
|
||||||
redis.quit()
|
redis.quit()
|
||||||
|
|
||||||
|
@ -175,7 +177,7 @@ const insertOrUpeateWhatsCache = async (hash:any, whatsapp: any) => {
|
||||||
|
|
||||||
await redis.hmset(hash,JSON.parse(JSON.stringify(whatsapp)));
|
await redis.hmset(hash,JSON.parse(JSON.stringify(whatsapp)));
|
||||||
|
|
||||||
console.log(`${whatsapp.length} WHATSAPP INSERTED OR UPADTED IN CACHE!`)
|
console.log(`WHATSAPP ID ${whatsapp.id} INSERTED OR UPADTED IN CACHE!`)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,7 +234,7 @@ const createWhatsappIndexCache = async (hashIndex: string) => {
|
||||||
await redis.call('FT.DROPINDEX', hashIndex)
|
await redis.call('FT.DROPINDEX', hashIndex)
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await redis.call('FT.CREATE', hashIndex, 'ON', 'HASH', 'PREFIX', '1', 'whatsapp:', 'SCHEMA','id', 'NUMERIC', 'SORTABLE', 'status', 'TEXT', 'SORTABLE', 'number', 'TEXT')
|
const response = await redis.call('FT.CREATE', hashIndex, 'ON', 'HASH', 'PREFIX', '1', 'whatsapp:', 'SCHEMA','id', 'NUMERIC', 'status', 'TEXT', 'SORTABLE', 'number', 'TEXT', 'SORTABLE')
|
||||||
|
|
||||||
console.log('Whatsapp index created: ', response)
|
console.log('Whatsapp index created: ', response)
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,8 @@ const sessions: Session[] = [];
|
||||||
let backupSession: any[] = []
|
let backupSession: any[] = []
|
||||||
|
|
||||||
import { insertOrUpeateWhatsCache } from "../helpers/WhatsCache";
|
import { insertOrUpeateWhatsCache } from "../helpers/WhatsCache";
|
||||||
|
import { json } from "sequelize/types";
|
||||||
|
import { restartWhatsSession } from "../helpers/RestartWhatsSession";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -138,7 +140,27 @@ export const initWbot = async (whatsapp: Whatsapp, backupSessionRestore: boolean
|
||||||
wbot.on("ready", async () => {
|
wbot.on("ready", async () => {
|
||||||
logger.info(`Session: ${sessionName} READY`);
|
logger.info(`Session: ${sessionName} READY`);
|
||||||
|
|
||||||
console.log('>>>>>>>>>>>>>> ready wbot.ts MOBILE NUMBER: ', wbot.info["wid"]["user"])
|
// console.log('>>>>>>>>>>>>>> ready wbot.ts MOBILE NUMBER: ', wbot.info["wid"]["user"])
|
||||||
|
// console.log('::::::: WHATSAPP INFO: ', JSON.parse(JSON.stringify(whatsapp)))
|
||||||
|
|
||||||
|
if(whatsapp.name.includes(wbot.info["wid"]["user"])){
|
||||||
|
console.log('-----------------> THIS IS THE RIGHT NUMBER')
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
console.log('-----------------> THIS IS THE WRONG NUMBER')
|
||||||
|
let read_number = wbot.info["wid"]["user"]
|
||||||
|
|
||||||
|
await wbot.logout()
|
||||||
|
|
||||||
|
io.emit("whatsappSession", {
|
||||||
|
action: "error",
|
||||||
|
msg: `Numero lido: ${read_number} \nEssa sessão de whatsapp foi desconectada porque o numero que esta descrito no nome dessa sessão não corresponde ao numero lido!`
|
||||||
|
});
|
||||||
|
|
||||||
|
// restartWhatsSession(whatsapp)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
await whatsapp.update({
|
await whatsapp.update({
|
||||||
|
|
|
@ -13,6 +13,7 @@ whatsappSessionRoutes.post(
|
||||||
WhatsAppSessionController.store
|
WhatsAppSessionController.store
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
whatsappSessionRoutes.put(
|
whatsappSessionRoutes.put(
|
||||||
"/whatsappsession/:whatsappId",
|
"/whatsappsession/:whatsappId",
|
||||||
isAuth,
|
isAuth,
|
||||||
|
|
|
@ -21,6 +21,7 @@ import { json } from "sequelize/types";
|
||||||
import sendMessageMultiSession from "../../helpers/TrySendMessageMultiSession";
|
import sendMessageMultiSession from "../../helpers/TrySendMessageMultiSession";
|
||||||
import { restartWhatsSession } from "../../helpers/RestartWhatsSession";
|
import { restartWhatsSession } from "../../helpers/RestartWhatsSession";
|
||||||
import { insertOrUpeateWhatsCache, searchWhatsappCache } from "../../helpers/WhatsCache";
|
import { insertOrUpeateWhatsCache, searchWhatsappCache } from "../../helpers/WhatsCache";
|
||||||
|
import GetDefaultWhatsApp from "../../helpers/GetDefaultWhatsApp";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,40 +49,39 @@ const SendWhatsAppMessage = async ({
|
||||||
quotedMsgSerializedId = SerializeWbotMsgId(ticket, quotedMsg);
|
quotedMsgSerializedId = SerializeWbotMsgId(ticket, quotedMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
//TEST DEL
|
|
||||||
|
|
||||||
let whats_number = await searchWhatsappCache(`${ticket.whatsappId}`)
|
|
||||||
console.log('---')
|
|
||||||
console.log('whats_number search: ', whats_number)
|
|
||||||
console.log('---')
|
|
||||||
|
|
||||||
let whatsapps: any
|
let whatsapps: any
|
||||||
|
|
||||||
const listWhatsapp = await ListWhatsAppsNumber(ticket.whatsappId, 'CONNECTED')
|
//TEST DEL
|
||||||
|
|
||||||
|
// const defaultWhatsapp = await GetDefaultWhatsApp();
|
||||||
|
// console.log('DEFAULT WHATSAPP: ', JSON.parse(JSON.stringify(defaultWhatsapp)))
|
||||||
|
|
||||||
|
let listWhatsapp = null
|
||||||
|
|
||||||
|
listWhatsapp = await searchWhatsappCache(`${ticket.whatsappId}`, 'CONNECTED')
|
||||||
|
|
||||||
|
if(!listWhatsapp){
|
||||||
|
listWhatsapp = await ListWhatsAppsNumber(ticket.whatsappId, 'CONNECTED')
|
||||||
|
}
|
||||||
|
|
||||||
|
// console.log('---')
|
||||||
|
// console.log('listWhatsapp search: ', listWhatsapp)
|
||||||
|
// console.log('---')
|
||||||
|
|
||||||
if (listWhatsapp.length > 1) {
|
if (listWhatsapp.length > 1) {
|
||||||
|
|
||||||
|
console.log('entrou --------------------->')
|
||||||
|
|
||||||
const _whatsapp = listWhatsapp[Math.floor(Math.random() * listWhatsapp.length)];
|
const _whatsapp = listWhatsapp[Math.floor(Math.random() * listWhatsapp.length)];
|
||||||
|
|
||||||
await ticket.update({ whatsappId: _whatsapp.id });
|
await ticket.update({ whatsappId: +_whatsapp.id });
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
|
|
||||||
whatsapps = await Whatsapp.findOne({
|
|
||||||
where: { id: ticket.whatsappId },
|
|
||||||
attributes: ['status']
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
console.log('1 --------> ticket.whatsappId: ', ticket.whatsappId)
|
console.log('1 --------> ticket.whatsappId: ', ticket.whatsappId)
|
||||||
|
|
||||||
|
if (listWhatsapp.length == 0) {
|
||||||
|
|
||||||
if (listWhatsapp.length == 0 || (whatsapps && whatsapps.status != 'CONNECTED')) {
|
|
||||||
|
|
||||||
whatsapps = await wbotByUserQueue(ticket.userId)
|
whatsapps = await wbotByUserQueue(ticket.userId)
|
||||||
|
|
||||||
|
@ -102,6 +102,57 @@ const SendWhatsAppMessage = async ({
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// const listWhatsapp = await ListWhatsAppsNumber(ticket.whatsappId, 'CONNECTED')
|
||||||
|
|
||||||
|
// if (listWhatsapp.length > 1) {
|
||||||
|
|
||||||
|
// const _whatsapp = listWhatsapp[Math.floor(Math.random() * listWhatsapp.length)];
|
||||||
|
|
||||||
|
// await ticket.update({ whatsappId: _whatsapp.id });
|
||||||
|
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
|
||||||
|
// whatsapps = await Whatsapp.findOne({
|
||||||
|
// where: { id: ticket.whatsappId },
|
||||||
|
// attributes: ['status']
|
||||||
|
// })
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// console.log('1 --------> ticket.whatsappId: ', ticket.whatsappId)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// if (listWhatsapp.length == 0 || (whatsapps && whatsapps.status != 'CONNECTED')) {
|
||||||
|
|
||||||
|
// whatsapps = await wbotByUserQueue(ticket.userId)
|
||||||
|
|
||||||
|
// if (whatsapps.length > 0) {
|
||||||
|
|
||||||
|
// if (whatsapps.length > 1) {
|
||||||
|
|
||||||
|
// await ticket.update({ whatsappId: whatsapps[+WhatsIndex(whatsapps)].id });
|
||||||
|
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
|
||||||
|
// await ticket.update({ whatsappId: whatsapps[0].id });
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
const wbot = await GetTicketWbot(ticket);
|
const wbot = await GetTicketWbot(ticket);
|
||||||
|
|
||||||
console.log('2 --------> send from whatsapp ticket.whatsappId: ', ticket.whatsappId)
|
console.log('2 --------> send from whatsapp ticket.whatsappId: ', ticket.whatsappId)
|
||||||
|
|
|
@ -365,9 +365,9 @@ const botSendMessage = (ticket: Ticket, contact: Contact, wbot: Session, msg: st
|
||||||
|
|
||||||
const _clear_lst = () => {
|
const _clear_lst = () => {
|
||||||
|
|
||||||
console.log('LIST (lst.length) WHATSAPP MESSAGE ID MULTI SESSION: : ', lst.length)
|
console.log('WHATSAPP MESSAGE ID MULTI SESSION: ', lst.length)
|
||||||
|
|
||||||
if (lst.length < 800 ) return
|
if (lst.length < 200 ) return
|
||||||
|
|
||||||
console.log('BEFORE lst SLICE: ', lst)
|
console.log('BEFORE lst SLICE: ', lst)
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,10 @@ import Whatsapp from "../../models/Whatsapp";
|
||||||
import ShowWhatsAppService from "./ShowWhatsAppService";
|
import ShowWhatsAppService from "./ShowWhatsAppService";
|
||||||
import AssociateWhatsappQueue from "./AssociateWhatsappQueue";
|
import AssociateWhatsappQueue from "./AssociateWhatsappQueue";
|
||||||
import { insertOrUpeateWhatsCache } from "../../helpers/WhatsCache";
|
import { insertOrUpeateWhatsCache } from "../../helpers/WhatsCache";
|
||||||
|
import { getWbot } from "../../libs/wbot";
|
||||||
|
import { restartWhatsSession } from "../../helpers/RestartWhatsSession";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
interface WhatsappData {
|
interface WhatsappData {
|
||||||
name?: string;
|
name?: string;
|
||||||
|
@ -47,6 +51,8 @@ const UpdateWhatsAppService = async ({
|
||||||
queueIds = []
|
queueIds = []
|
||||||
} = whatsappData;
|
} = whatsappData;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await schema.validate({ name, status, isDefault });
|
await schema.validate({ name, status, isDefault });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -70,6 +76,14 @@ const UpdateWhatsAppService = async ({
|
||||||
|
|
||||||
const whatsapp = await ShowWhatsAppService(whatsappId);
|
const whatsapp = await ShowWhatsAppService(whatsappId);
|
||||||
|
|
||||||
|
// console.log('############## whatsapp: ', JSON.parse(JSON.stringify(whatsapp)))
|
||||||
|
|
||||||
|
if(name && !name.includes(whatsapp.number) && whatsapp.status === 'CONNECTED'){
|
||||||
|
|
||||||
|
throw new AppError("ERR_WAPP_WRONG_SESSION_NAME");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
await whatsapp.update({
|
await whatsapp.update({
|
||||||
name,
|
name,
|
||||||
status,
|
status,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState, useContext } from "react";
|
||||||
import QRCode from "qrcode.react";
|
import QRCode from "qrcode.react";
|
||||||
import openSocket from "socket.io-client";
|
import openSocket from "socket.io-client";
|
||||||
import toastError from "../../errors/toastError";
|
import toastError from "../../errors/toastError";
|
||||||
|
@ -7,7 +7,12 @@ import { Dialog, DialogContent, Paper, Typography } from "@material-ui/core";
|
||||||
import { i18n } from "../../translate/i18n";
|
import { i18n } from "../../translate/i18n";
|
||||||
import api from "../../services/api";
|
import api from "../../services/api";
|
||||||
|
|
||||||
|
import { AuthContext } from "../../context/Auth/AuthContext";
|
||||||
|
|
||||||
const QrcodeModal = ({ open, onClose, whatsAppId }) => {
|
const QrcodeModal = ({ open, onClose, whatsAppId }) => {
|
||||||
|
|
||||||
|
const { user } = useContext(AuthContext);
|
||||||
|
|
||||||
const [qrCode, setQrCode] = useState("");
|
const [qrCode, setQrCode] = useState("");
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -36,12 +41,24 @@ const QrcodeModal = ({ open, onClose, whatsAppId }) => {
|
||||||
if (data.action === "update" && data.session.qrcode === "") {
|
if (data.action === "update" && data.session.qrcode === "") {
|
||||||
onClose();
|
onClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.action === "error") {
|
||||||
|
|
||||||
|
console.log('user.profile: ', user.profile)
|
||||||
|
|
||||||
|
if(user.profile === 'master'){
|
||||||
|
|
||||||
|
alert(data.msg)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
socket.disconnect();
|
socket.disconnect();
|
||||||
};
|
};
|
||||||
}, [whatsAppId, onClose]);
|
}, [whatsAppId, onClose, user.profile]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog open={open} onClose={onClose} maxWidth="lg" scroll="paper">
|
<Dialog open={open} onClose={onClose} maxWidth="lg" scroll="paper">
|
||||||
|
|
|
@ -2,6 +2,7 @@ import { useState, useEffect, useReducer } from "react";
|
||||||
import openSocket from "socket.io-client";
|
import openSocket from "socket.io-client";
|
||||||
import toastError from "../../errors/toastError";
|
import toastError from "../../errors/toastError";
|
||||||
|
|
||||||
|
|
||||||
import api from "../../services/api";
|
import api from "../../services/api";
|
||||||
|
|
||||||
const reducer = (state, action) => {
|
const reducer = (state, action) => {
|
||||||
|
@ -28,16 +29,39 @@ const reducer = (state, action) => {
|
||||||
const whatsAppIndex = state.findIndex(s => s.id === whatsApp.id);
|
const whatsAppIndex = state.findIndex(s => s.id === whatsApp.id);
|
||||||
|
|
||||||
if (whatsAppIndex !== -1) {
|
if (whatsAppIndex !== -1) {
|
||||||
state[whatsAppIndex].status = whatsApp.status;
|
|
||||||
state[whatsAppIndex].updatedAt = whatsApp.updatedAt;
|
if ('disabled' in whatsApp) {
|
||||||
state[whatsAppIndex].qrcode = whatsApp.qrcode;
|
state[whatsAppIndex].disabled = whatsApp.disabled
|
||||||
state[whatsAppIndex].retries = whatsApp.retries;
|
}
|
||||||
|
else {
|
||||||
|
state[whatsAppIndex].status = whatsApp.status;
|
||||||
|
state[whatsAppIndex].updatedAt = whatsApp.updatedAt;
|
||||||
|
state[whatsAppIndex].qrcode = whatsApp.qrcode;
|
||||||
|
state[whatsAppIndex].retries = whatsApp.retries;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return [...state];
|
return [...state];
|
||||||
} else {
|
} else {
|
||||||
return [...state];
|
return [...state];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if(action.type === "UPDATE_SESSION_RESTORE"){
|
||||||
|
|
||||||
|
// const whatsApp = action.payload;
|
||||||
|
|
||||||
|
// console.log('------> whatsApp: ', whatsApp)
|
||||||
|
|
||||||
|
// const whatsAppIndex = state.findIndex(s => s.id === whatsApp.id);
|
||||||
|
|
||||||
|
// if (whatsAppIndex !== -1) {
|
||||||
|
// console.log('kkkkkkkkkkkkkkkkkkkkkkkkkk: ',whatsAppIndex)
|
||||||
|
|
||||||
|
// return [...state];
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
// if (action.type === "UPDATE_DISK_SPACE_MONIT") {
|
// if (action.type === "UPDATE_DISK_SPACE_MONIT") {
|
||||||
// const whatsApp = action.payload;
|
// const whatsApp = action.payload;
|
||||||
|
@ -84,6 +108,8 @@ const useWhatsApps = () => {
|
||||||
const [whatsApps, dispatch] = useReducer(reducer, []);
|
const [whatsApps, dispatch] = useReducer(reducer, []);
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
const fetchSession = async () => {
|
const fetchSession = async () => {
|
||||||
|
@ -116,16 +142,15 @@ const useWhatsApps = () => {
|
||||||
|
|
||||||
socket.on("whatsappSession", data => {
|
socket.on("whatsappSession", data => {
|
||||||
if (data.action === "update") {
|
if (data.action === "update") {
|
||||||
|
|
||||||
dispatch({ type: "UPDATE_SESSION", payload: data.session });
|
dispatch({ type: "UPDATE_SESSION", payload: data.session });
|
||||||
}
|
}
|
||||||
|
else if (data.action === "update_restore") {
|
||||||
|
dispatch({ type: "UPDATE_SESSION_RESTORE", payload: data.session });
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("whatsappSessionMonit", data => {
|
socket.on("whatsappSessionMonit", data => {
|
||||||
if (data.action === "update") {
|
if (data.action === "update") {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dispatch({ type: "UPDATE_WHATSAPPS_SESSION_MONIT", payload: data.whatsappSessionSize });
|
dispatch({ type: "UPDATE_WHATSAPPS_SESSION_MONIT", payload: data.whatsappSessionSize });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -115,7 +115,7 @@ const Connections = () => {
|
||||||
|
|
||||||
const [diskSpaceInfo, setDiskSpaceInfo] = useState({});
|
const [diskSpaceInfo, setDiskSpaceInfo] = useState({});
|
||||||
|
|
||||||
|
const [disabled, setDisabled] = useState(true);
|
||||||
|
|
||||||
|
|
||||||
const confirmationModalInitialState = {
|
const confirmationModalInitialState = {
|
||||||
|
@ -140,7 +140,9 @@ const Connections = () => {
|
||||||
|
|
||||||
const handleRestartWhatsAppSession = async whatsAppId => {
|
const handleRestartWhatsAppSession = async whatsAppId => {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
await api.post(`/restartwhatsappsession/${whatsAppId}`);
|
await api.post(`/restartwhatsappsession/${whatsAppId}`);
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
toastError(err);
|
toastError(err);
|
||||||
}
|
}
|
||||||
|
@ -329,6 +331,32 @@ const Connections = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
|
||||||
|
const delayDebounceFn = setTimeout(() => {
|
||||||
|
|
||||||
|
const fetchQueries = async () => {
|
||||||
|
try {
|
||||||
|
|
||||||
|
await api.post(`/restartwhatsappsession/0`, { params: { status: 'status' }, });
|
||||||
|
|
||||||
|
setDisabled(false)
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
fetchQueries();
|
||||||
|
|
||||||
|
}, 500);
|
||||||
|
return () => clearTimeout(delayDebounceFn);
|
||||||
|
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const socket = openSocket(process.env.REACT_APP_BACKEND_URL);
|
const socket = openSocket(process.env.REACT_APP_BACKEND_URL);
|
||||||
|
|
||||||
|
@ -407,35 +435,35 @@ const Connections = () => {
|
||||||
perform="space-disk-info:show"
|
perform="space-disk-info:show"
|
||||||
yes={() => (
|
yes={() => (
|
||||||
<>
|
<>
|
||||||
<Table size="small">
|
<Table size="small">
|
||||||
<TableHead>
|
<TableHead>
|
||||||
<TableRow>
|
<TableRow>
|
||||||
<TableCell align="center">
|
<TableCell align="center">
|
||||||
Size
|
Size
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell align="center">
|
<TableCell align="center">
|
||||||
Used
|
Used
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell align="center">
|
<TableCell align="center">
|
||||||
Available
|
Available
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell align="center">
|
<TableCell align="center">
|
||||||
Use%
|
Use%
|
||||||
</TableCell>
|
</TableCell>
|
||||||
</TableRow>
|
</TableRow>
|
||||||
</TableHead>
|
</TableHead>
|
||||||
|
|
||||||
<TableBody>
|
<TableBody>
|
||||||
<TableRow>
|
<TableRow>
|
||||||
<TableCell align="center">{diskSpaceInfo.size}</TableCell>
|
<TableCell align="center">{diskSpaceInfo.size}</TableCell>
|
||||||
<TableCell align="center">{diskSpaceInfo.used}</TableCell>
|
<TableCell align="center">{diskSpaceInfo.used}</TableCell>
|
||||||
<TableCell align="center">{diskSpaceInfo.available}</TableCell>
|
<TableCell align="center">{diskSpaceInfo.available}</TableCell>
|
||||||
<TableCell align="center">{diskSpaceInfo.use}</TableCell>
|
<TableCell align="center">{diskSpaceInfo.use}</TableCell>
|
||||||
</TableRow>
|
</TableRow>
|
||||||
</TableBody>
|
</TableBody>
|
||||||
</Table>
|
</Table>
|
||||||
<br />
|
<br />
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -533,9 +561,11 @@ const Connections = () => {
|
||||||
role={user.profile}
|
role={user.profile}
|
||||||
perform="connection-button:show"
|
perform="connection-button:show"
|
||||||
yes={() => (
|
yes={() => (
|
||||||
|
|
||||||
<TableCell align="center">
|
<TableCell align="center">
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
disabled={whatsApp.disabled || disabled ? true : false}
|
||||||
size="small"
|
size="small"
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
color="primary"
|
||||||
|
@ -543,6 +573,7 @@ const Connections = () => {
|
||||||
|
|
||||||
>
|
>
|
||||||
Restore
|
Restore
|
||||||
|
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
</TableCell>
|
</TableCell>
|
||||||
|
|
|
@ -453,6 +453,8 @@ const messages = {
|
||||||
"This color is already in use, pick another one.",
|
"This color is already in use, pick another one.",
|
||||||
ERR_WAPP_GREETING_REQUIRED:
|
ERR_WAPP_GREETING_REQUIRED:
|
||||||
"Greeting message is required if there is more than one queue.",
|
"Greeting message is required if there is more than one queue.",
|
||||||
|
ERR_WAPP_WRONG_SESSION_NAME:
|
||||||
|
"The number updated in the session name does not match the number read! To change the new number in the name disconnect the session!",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -460,6 +460,9 @@ const messages = {
|
||||||
"Este color ya está en uso, elija otro.",
|
"Este color ya está en uso, elija otro.",
|
||||||
ERR_WAPP_GREETING_REQUIRED:
|
ERR_WAPP_GREETING_REQUIRED:
|
||||||
"El mensaje de saludo es obligatorio cuando hay más de una cola.",
|
"El mensaje de saludo es obligatorio cuando hay más de una cola.",
|
||||||
|
ERR_WAPP_WRONG_SESSION_NAME:
|
||||||
|
"¡El número actualizado en el nombre de la sesión no coincide con el número leído! Para cambiar el nuevo número en el nombre desconecte la sesión!",
|
||||||
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -458,6 +458,10 @@ const messages = {
|
||||||
"Esta cor já está em uso, escolha outra.",
|
"Esta cor já está em uso, escolha outra.",
|
||||||
ERR_WAPP_GREETING_REQUIRED:
|
ERR_WAPP_GREETING_REQUIRED:
|
||||||
"A mensagem de saudação é obrigatório quando há mais de uma fila.",
|
"A mensagem de saudação é obrigatório quando há mais de uma fila.",
|
||||||
|
ERR_WAPP_WRONG_SESSION_NAME:
|
||||||
|
"O numero atualizado no nome da sessão não corresponde ao numero lido! Para alterar o novo numero no nome desconecte a sessão!",
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue