39 lines
936 B
TypeScript
39 lines
936 B
TypeScript
import { getIO } from "../libs/socket";
|
|
import Message from "../models/Message";
|
|
import Ticket from "../models/Ticket";
|
|
import { logger } from "../utils/logger";
|
|
import GetTicketWbot from "./GetTicketWbot";
|
|
|
|
const SetTicketMessagesAsRead = async (ticket: Ticket): Promise<void> => {
|
|
await Message.update(
|
|
{ read: true },
|
|
{
|
|
where: {
|
|
ticketId: ticket.id,
|
|
read: false
|
|
}
|
|
}
|
|
);
|
|
|
|
await ticket.update({ unreadMessages: 0 });
|
|
|
|
try {
|
|
const wbot = await GetTicketWbot(ticket);
|
|
await wbot.sendSeen(
|
|
`${ticket.contact.number}@${ticket.isGroup ? "g" : "c"}.us`
|
|
);
|
|
} catch (err) {
|
|
logger.warn(
|
|
`Could not mark messages as read. Maybe whatsapp session disconnected? Err: ${err}`
|
|
);
|
|
}
|
|
|
|
const io = getIO();
|
|
io.to(ticket.status).to("notification").emit("ticket", {
|
|
action: "updateUnread",
|
|
ticketId: ticket.id
|
|
});
|
|
};
|
|
|
|
export default SetTicketMessagesAsRead;
|