fix: deleting a user keeping user's tickets open assigned to "null"

This commit is contained in:
canove
2020-09-26 20:19:33 -03:00
parent 574fe9c517
commit 36a2451dc5
2 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
import { getIO } from "../libs/socket";
import Ticket from "../models/Ticket";
import UpdateTicketService from "../services/TicketServices/UpdateTicketService";
const UpdateDeletedUserOpenTicketsStatus = async (
tickets: Ticket[]
): Promise<void> => {
tickets.forEach(async t => {
const ticketId = t.id.toString();
const { ticket, oldStatus, ticketUser } = await UpdateTicketService({
ticketData: { status: "pending" },
ticketId
});
const io = getIO();
if (ticket.status !== oldStatus) {
io.to(oldStatus).emit("ticket", {
action: "delete",
ticketId: ticket.id
});
}
io.to(ticket.status).to(ticketId).emit("ticket", {
action: "updateStatus",
ticket,
user: ticketUser
});
});
};
export default UpdateDeletedUserOpenTicketsStatus;

View File

@@ -1,5 +1,7 @@
import User from "../../models/User";
import AppError from "../../errors/AppError";
import Ticket from "../../models/Ticket";
import UpdateDeletedUserOpenTicketsStatus from "../../helpers/UpdateDeletedUserOpenTicketsStatus";
const DeleteUserService = async (id: string): Promise<void> => {
const user = await User.findOne({
@@ -10,6 +12,14 @@ const DeleteUserService = async (id: string): Promise<void> => {
throw new AppError("No user found with this ID.", 404);
}
const userOpenTickets: Ticket[] = await user.$get("tickets", {
where: { status: "open" }
});
if (userOpenTickets.length > 0) {
UpdateDeletedUserOpenTicketsStatus(userOpenTickets);
}
await user.destroy();
};