changed whatsapp controllers to typescript

This commit is contained in:
canove
2020-09-19 10:18:31 -03:00
parent 872e237b48
commit 5dda3aabaf
5 changed files with 150 additions and 82 deletions

View File

@@ -1,5 +1,10 @@
import { Request, Response } from "express"; import { Request, Response } from "express";
import CreateWhatsAppService from "../services/WhatsappService/CreateWhatsAppService"; import CreateWhatsAppService from "../services/WhatsappService/CreateWhatsAppService";
import DeleteWhatsApprService from "../services/WhatsappService/DeleteWhatsApprService";
import ListWhatsAppsService from "../services/WhatsappService/ListWhatsAppsService";
import ShowWhatsAppService from "../services/WhatsappService/ShowWhatsAppService";
import UpdateWhatsAppService from "../services/WhatsappService/UpdateWhatsAppService";
// import Yup from "yup"; // import Yup from "yup";
// import Whatsapp from "../models/Whatsapp"; // import Whatsapp from "../models/Whatsapp";
// import { getIO } from "../libs/socket"; // import { getIO } from "../libs/socket";
@@ -7,8 +12,6 @@ import CreateWhatsAppService from "../services/WhatsappService/CreateWhatsAppSer
// import wbotMessageListener from "../services/wbotMessageListener"; // import wbotMessageListener from "../services/wbotMessageListener";
// import wbotMonitor from "../services/wbotMonitor"; // import wbotMonitor from "../services/wbotMonitor";
import ListWhatsAppsService from "../services/WhatsappService/ListWhatsAppsService";
export const index = async (req: Request, res: Response): Promise<Response> => { export const index = async (req: Request, res: Response): Promise<Response> => {
const whatsapps = await ListWhatsAppsService(); const whatsapps = await ListWhatsAppsService();
@@ -47,89 +50,54 @@ export const store = async (req: Request, res: Response): Promise<Response> => {
return res.status(200).json(whatsapp); return res.status(200).json(whatsapp);
}; };
// export const show = async (req: Request, res: Response): Promise<Response> => { export const show = async (req: Request, res: Response): Promise<Response> => {
// const { whatsappId } = req.params; const { whatsappId } = req.params;
// const whatsapp = await Whatsapp.findByPk(whatsappId);
// if (!whatsapp) { const whatsapp = await ShowWhatsAppService(whatsappId);
// return res.status(200).json({ message: "Session not found" });
// }
// return res.status(200).json(whatsapp); return res.status(200).json(whatsapp);
// }; };
// export const update = async ( export const update = async (
// req: Request, req: Request,
// res: Response res: Response
// ): Promise<Response> => { ): Promise<Response> => {
// const { whatsappId } = req.params; const { whatsappId } = req.params;
const whatsappData = req.body;
// const schema = Yup.object().shape({ const whatsapp = await UpdateWhatsAppService({ whatsappData, whatsappId });
// name: Yup.string().required().min(2), // const io = getIO();
// default: Yup.boolean()
// .required()
// .test(
// "Check-default",
// "Only one default whatsapp is permited",
// async value => {
// if (value === true) {
// const whatsappFound = await Whatsapp.findOne({
// where: { default: true }
// });
// if (whatsappFound) {
// return !(whatsappFound.id !== +whatsappId);
// } else {
// return true;
// }
// } else return true;
// }
// )
// });
// try { // const whatsapp = await Whatsapp.findByPk(whatsappId);
// await schema.validate(req.body);
// } catch (err) {
// return res.status(400).json({ error: err.message });
// }
// const io = getIO(); // if (!whatsapp) {
// return res.status(404).json({ message: "Whatsapp not found" });
// }
// const whatsapp = await Whatsapp.findByPk(whatsappId); // await whatsapp.update(req.body);
// if (!whatsapp) { // io.emit("whatsapp", {
// return res.status(404).json({ message: "Whatsapp not found" }); // action: "update",
// } // whatsapp: whatsapp
// });
// await whatsapp.update(req.body); return res.status(200).json(whatsapp);
};
// io.emit("whatsapp", { export const remove = async (
// action: "update", req: Request,
// whatsapp: whatsapp res: Response
// }); ): Promise<Response> => {
// const io = getIO();
const { whatsappId } = req.params;
// return res.status(200).json({ message: "Whatsapp updated" }); await DeleteWhatsApprService(whatsappId);
// }; // removeWbot(whatsapp.id);
// export const remove = async ( // io.emit("whatsapp", {
// req: Request, // action: "delete",
// res: Response // whatsappId: whatsapp.id
// ): Promise<Response> => { // });
// const io = getIO();
// const { whatsappId } = req.params;
// const whatsapp = await Whatsapp.findByPk(whatsappId); return res.status(200).json({ message: "Whatsapp deleted." });
};
// if (!whatsapp) {
// return res.status(404).json({ message: "Whatsapp not found" });
// }
// await whatsapp.destroy();
// removeWbot(whatsapp.id);
// io.emit("whatsapp", {
// action: "delete",
// whatsappId: whatsapp.id
// });
// return res.status(200).json({ message: "Whatsapp deleted." });
// };

View File

@@ -9,14 +9,14 @@ whatsappRoutes.get("/whatsapp/", isAuth, WhatsAppController.index);
whatsappRoutes.post("/whatsapp/", isAuth, WhatsAppController.store); whatsappRoutes.post("/whatsapp/", isAuth, WhatsAppController.store);
// whatsappRoutes.get("/whatsapp/:whatsappId", isAuth, WhatsAppController.show); whatsappRoutes.get("/whatsapp/:whatsappId", isAuth, WhatsAppController.show);
// whatsappRoutes.put("/whatsapp/:whatsappId", isAuth, WhatsAppController.update); whatsappRoutes.put("/whatsapp/:whatsappId", isAuth, WhatsAppController.update);
// whatsappRoutes.remove( whatsappRoutes.delete(
// "/whatsapp/:whatsappId", "/whatsapp/:whatsappId",
// isAuth, isAuth,
// WhatsAppController.delete WhatsAppController.remove
// ); );
export default whatsappRoutes; export default whatsappRoutes;

View File

@@ -0,0 +1,16 @@
import Whatsapp from "../../models/Whatsapp";
import AppError from "../../errors/AppError";
const DeleteWhatsApprService = async (id: string): Promise<void> => {
const whatsapp = await Whatsapp.findOne({
where: { id }
});
if (!whatsapp) {
throw new AppError("No whatsapp found with this ID.", 404);
}
await whatsapp.destroy();
};
export default DeleteWhatsApprService;

View File

@@ -0,0 +1,18 @@
import Whatsapp from "../../models/Whatsapp";
import AppError from "../../errors/AppError";
const ShowWhatsAppService = async (
id: string
): Promise<Whatsapp | undefined> => {
const whatsapp = await Whatsapp.findOne({
where: { id }
});
if (!whatsapp) {
throw new AppError("No whatsapp found with this ID.", 404);
}
return whatsapp;
};
export default ShowWhatsAppService;

View File

@@ -0,0 +1,66 @@
import * as Yup from "yup";
import AppError from "../../errors/AppError";
import Whatsapp from "../../models/Whatsapp";
interface WhatsappData {
name?: string;
status?: string;
isDefault?: boolean;
}
interface Request {
whatsappData: WhatsappData;
whatsappId: string;
}
const UpdateWhatsAppService = async ({
whatsappData,
whatsappId
}: Request): Promise<Whatsapp> => {
const schema = Yup.object().shape({
name: Yup.string().min(2),
default: Yup.boolean().test(
"Check-default",
"Only one default whatsapp is permited",
async value => {
if (value === true) {
const whatsappFound = await Whatsapp.findOne({
where: { default: true }
});
if (whatsappFound) {
return !(whatsappFound.id !== +whatsappId);
}
return true;
}
return true;
}
)
});
const { name, status, isDefault } = whatsappData;
try {
await schema.validate({ name, status, isDefault });
} catch (err) {
throw new AppError(err.message);
}
const whatsapp = await Whatsapp.findOne({
where: { id: whatsappId }
});
if (!whatsapp) {
throw new AppError("No whatsapp found with this ID.", 404);
}
await whatsapp.update({
name,
status,
isDefault
});
return whatsapp;
};
export default UpdateWhatsAppService;