Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | import AppError from "../../errors/AppError"; import CheckContactOpenTickets from "../../helpers/CheckContactOpenTickets"; import SetTicketMessagesAsRead from "../../helpers/SetTicketMessagesAsRead"; import Contact from "../../models/Contact"; import Ticket from "../../models/Ticket"; import User from "../../models/User"; interface TicketData { status?: string; userId?: number; } interface Request { ticketData: TicketData; ticketId: string; } interface Response { ticket: Ticket; ticketUser: User | null; oldStatus: string; } const UpdateTicketService = async ({ ticketData, ticketId }: Request): Promise<Response> => { const { status, userId } = ticketData; const ticket = await Ticket.findOne({ where: { id: ticketId }, include: [ { model: Contact, as: "contact", attributes: ["id", "name", "number", "profilePicUrl"] } ] }); if (!ticket) { throw new AppError("ERR_NO_TICKET_FOUND", 404); } await SetTicketMessagesAsRead(ticket); const oldStatus = ticket.status; if (oldStatus === "closed") { await CheckContactOpenTickets(ticket.contact.id); } await ticket.update({ status, userId }); const ticketUser = await ticket.$get("user", { attributes: ["id", "name"] }); return { ticket, oldStatus, ticketUser }; }; export default UpdateTicketService; |