mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-20 20:59:16 +00:00
fix: deleting a user keeping user's tickets open assigned to "null"
This commit is contained in:
32
backend/src/helpers/UpdateDeletedUserOpenTicketsStatus.ts
Normal file
32
backend/src/helpers/UpdateDeletedUserOpenTicketsStatus.ts
Normal 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;
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
import User from "../../models/User";
|
import User from "../../models/User";
|
||||||
import AppError from "../../errors/AppError";
|
import AppError from "../../errors/AppError";
|
||||||
|
import Ticket from "../../models/Ticket";
|
||||||
|
import UpdateDeletedUserOpenTicketsStatus from "../../helpers/UpdateDeletedUserOpenTicketsStatus";
|
||||||
|
|
||||||
const DeleteUserService = async (id: string): Promise<void> => {
|
const DeleteUserService = async (id: string): Promise<void> => {
|
||||||
const user = await User.findOne({
|
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);
|
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();
|
await user.destroy();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user