projeto-hit/backend/src/services/TicketServices/CreateTicketService.ts

41 lines
978 B
TypeScript
Raw Normal View History

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> => {
const defaultWhatsapp = await GetDefaultWhatsApp(userId);
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;