38 lines
913 B
TypeScript
38 lines
913 B
TypeScript
|
import fs from "fs";
|
||
|
import { MessageMedia, Message as WbotMessage } from "whatsapp-web.js";
|
||
|
import AppError from "../../errors/AppError";
|
||
|
import GetTicketWbot from "../../helpers/GetTicketWbot";
|
||
|
import Ticket from "../../models/Ticket";
|
||
|
|
||
|
interface Request {
|
||
|
media: Express.Multer.File;
|
||
|
ticket: Ticket;
|
||
|
}
|
||
|
|
||
|
const SendWhatsAppMedia = async ({
|
||
|
media,
|
||
|
ticket
|
||
|
}: Request): Promise<WbotMessage> => {
|
||
|
try {
|
||
|
const wbot = await GetTicketWbot(ticket);
|
||
|
|
||
|
const newMedia = MessageMedia.fromFilePath(media.path);
|
||
|
|
||
|
const sentMessage = await wbot.sendMessage(
|
||
|
`${ticket.contact.number}@${ticket.isGroup ? "g" : "c"}.us`,
|
||
|
newMedia,
|
||
|
{ sendAudioAsVoice: true }
|
||
|
);
|
||
|
|
||
|
await ticket.update({ lastMessage: media.filename });
|
||
|
|
||
|
fs.unlinkSync(media.path);
|
||
|
|
||
|
return sentMessage;
|
||
|
} catch (err) {
|
||
|
throw new AppError("ERR_SENDING_WAPP_MSG");
|
||
|
}
|
||
|
};
|
||
|
|
||
|
export default SendWhatsAppMedia;
|