mirror of
https://github.com/cheveguerra/whaticket-community.git
synced 2026-04-19 20:29:17 +00:00
changed ticket update route to typescript
This commit is contained in:
@@ -3,6 +3,7 @@ import GetDefaultWhatsapp from "../helpers/GetDefaultWhatsapp";
|
||||
import Ticket from "../models/Ticket";
|
||||
import CreateTicketService from "../services/TicketServices/CreateTicketService";
|
||||
import ListTicketsService from "../services/TicketServices/ListTicketsService";
|
||||
import UpdateTicketService from "../services/TicketServices/UpdateTicketService";
|
||||
// const Sequelize = require("sequelize");
|
||||
// const { startOfDay, endOfDay, parseISO } = require("date-fns");
|
||||
|
||||
@@ -100,14 +101,11 @@ interface TicketData {
|
||||
}
|
||||
|
||||
export const store = async (req: Request, res: Response): Promise<Response> => {
|
||||
// const io = getIO();
|
||||
|
||||
const { contactId, status }: TicketData = req.body;
|
||||
|
||||
const ticket = await CreateTicketService({ contactId, status });
|
||||
|
||||
// const serializaedTicket = { ...ticket.dataValues, contact: contact };
|
||||
|
||||
// const io = getIO();
|
||||
// io.to("notification").emit("ticket", {
|
||||
// action: "create",
|
||||
// ticket: serializaedTicket
|
||||
@@ -116,33 +114,39 @@ export const store = async (req: Request, res: Response): Promise<Response> => {
|
||||
return res.status(200).json(ticket);
|
||||
};
|
||||
|
||||
// export const update = (req: Request, res: Response): Promise<Response> => {
|
||||
// const io = getIO();
|
||||
// const { ticketId } = req.params;
|
||||
export const update = async (
|
||||
req: Request,
|
||||
res: Response
|
||||
): Promise<Response> => {
|
||||
// const io = getIO();
|
||||
const { ticketId } = req.params;
|
||||
const ticketData: TicketData = req.body;
|
||||
|
||||
// const ticket = await Ticket.findByPk(ticketId, {
|
||||
// include: [
|
||||
// {
|
||||
// model: Contact,
|
||||
// as: "contact",
|
||||
// attributes: ["name", "number", "profilePicUrl"]
|
||||
// }
|
||||
// ]
|
||||
// });
|
||||
const ticket = await UpdateTicketService({ ticketData, ticketId });
|
||||
|
||||
// if (!ticket) {
|
||||
// return res.status(404).json({ error: "No ticket found with this ID" });
|
||||
// }
|
||||
// const ticket = await Ticket.findByPk(ticketId, {
|
||||
// include: [
|
||||
// {
|
||||
// model: Contact,
|
||||
// as: "contact",
|
||||
// attributes: ["name", "number", "profilePicUrl"]
|
||||
// }
|
||||
// ]
|
||||
// });
|
||||
|
||||
// await ticket.update(req.body);
|
||||
// if (!ticket) {
|
||||
// return res.status(404).json({ error: "No ticket found with this ID" });
|
||||
// }
|
||||
|
||||
// io.to("notification").emit("ticket", {
|
||||
// action: "updateStatus",
|
||||
// ticket: ticket
|
||||
// });
|
||||
// await ticket.update(req.body);
|
||||
|
||||
// return res.status(200).json(ticket);
|
||||
// };
|
||||
// io.to("notification").emit("ticket", {
|
||||
// action: "updateStatus",
|
||||
// ticket: ticket
|
||||
// });
|
||||
|
||||
return res.status(200).json(ticket);
|
||||
};
|
||||
|
||||
// export const remove = (req: Request, res: Response): Promise<Response> => {
|
||||
// const io = getIO();
|
||||
|
||||
@@ -9,7 +9,7 @@ ticketRoutes.get("/tickets", isAuth, TicketController.index);
|
||||
|
||||
ticketRoutes.post("/tickets", isAuth, TicketController.store);
|
||||
|
||||
// ticketRoutes.put("/tickets/:ticketId", isAuth, TicketController.update);
|
||||
ticketRoutes.put("/tickets/:ticketId", isAuth, TicketController.update);
|
||||
|
||||
// ticketRoutes.delete("/tickets/:ticketId", isAuth, TicketController.remove);
|
||||
|
||||
|
||||
36
backend/src/services/TicketServices/UpdateTicketService.ts
Normal file
36
backend/src/services/TicketServices/UpdateTicketService.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import AppError from "../../errors/AppError";
|
||||
import Ticket from "../../models/Ticket";
|
||||
|
||||
interface TicketData {
|
||||
status?: string;
|
||||
userId?: number;
|
||||
}
|
||||
|
||||
interface Request {
|
||||
ticketData: TicketData;
|
||||
ticketId: string;
|
||||
}
|
||||
|
||||
const UpdateTicketService = async ({
|
||||
ticketData,
|
||||
ticketId
|
||||
}: Request): Promise<Ticket> => {
|
||||
const { status, userId } = ticketData;
|
||||
|
||||
const ticket = await Ticket.findOne({
|
||||
where: { id: ticketId }
|
||||
});
|
||||
|
||||
if (!ticket) {
|
||||
throw new AppError("No ticket found with this ID.", 404);
|
||||
}
|
||||
|
||||
await ticket.update({
|
||||
status,
|
||||
userId
|
||||
});
|
||||
|
||||
return ticket;
|
||||
};
|
||||
|
||||
export default UpdateTicketService;
|
||||
Reference in New Issue
Block a user