2022-01-06 01:26:15 +00:00
|
|
|
import AppError from "../../errors/AppError";
|
|
|
|
import CheckContactOpenTickets from "../../helpers/CheckContactOpenTickets";
|
|
|
|
import GetDefaultWhatsApp from "../../helpers/GetDefaultWhatsApp";
|
|
|
|
import Ticket from "../../models/Ticket";
|
|
|
|
import ShowContactService from "../ContactServices/ShowContactService";
|
|
|
|
|
|
|
|
interface Request {
|
|
|
|
contactId: number;
|
|
|
|
status: string;
|
|
|
|
userId: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
const CreateTicketService = async ({
|
|
|
|
contactId,
|
|
|
|
status,
|
|
|
|
userId
|
|
|
|
}: Request): Promise<Ticket> => {
|
2022-04-28 20:57:57 +00:00
|
|
|
const defaultWhatsapp = await GetDefaultWhatsApp(userId);
|
2022-01-06 01:26:15 +00:00
|
|
|
|
|
|
|
await CheckContactOpenTickets(contactId);
|
|
|
|
|
|
|
|
const { isGroup } = await ShowContactService(contactId);
|
|
|
|
|
|
|
|
const { id }: Ticket = await defaultWhatsapp.$create("ticket", {
|
|
|
|
contactId,
|
|
|
|
status,
|
|
|
|
isGroup,
|
|
|
|
userId
|
|
|
|
});
|
|
|
|
|
|
|
|
const ticket = await Ticket.findByPk(id, { include: ["contact"] });
|
|
|
|
|
|
|
|
if (!ticket) {
|
|
|
|
throw new AppError("ERR_CREATING_TICKET");
|
|
|
|
}
|
|
|
|
|
|
|
|
return ticket;
|
|
|
|
};
|
|
|
|
|
|
|
|
export default CreateTicketService;
|