From eab7719583a0eeb883d6349a82c63335970634f9 Mon Sep 17 00:00:00 2001 From: canove Date: Sat, 19 Sep 2020 09:52:39 -0300 Subject: [PATCH] changed whatsapp model --- backend/src/controllers/WhatsAppController.ts | 5 +- backend/src/models/Whatsapp.ts | 2 +- .../WhatsappService/CreateWhatsAppService.ts | 52 ++++++++++--------- 3 files changed, 32 insertions(+), 27 deletions(-) diff --git a/backend/src/controllers/WhatsAppController.ts b/backend/src/controllers/WhatsAppController.ts index 00c6137..3262f74 100644 --- a/backend/src/controllers/WhatsAppController.ts +++ b/backend/src/controllers/WhatsAppController.ts @@ -18,6 +18,7 @@ export const index = async (req: Request, res: Response): Promise => { interface WhatsappData { name: string; status: string; + isDefault?: boolean; } export const store = async (req: Request, res: Response): Promise => { @@ -25,9 +26,9 @@ export const store = async (req: Request, res: Response): Promise => { console.log("aqui"); - const { name, status }: WhatsappData = req.body; + const { name, status, isDefault }: WhatsappData = req.body; - const whatsapp = await CreateWhatsAppService({ name, status }); + const whatsapp = await CreateWhatsAppService({ name, status, isDefault }); // if (!whatsapp) { // return res.status(400).json({ error: "Cannot create whatsapp session." }); diff --git a/backend/src/models/Whatsapp.ts b/backend/src/models/Whatsapp.ts index 7fe0402..1ad2896 100644 --- a/backend/src/models/Whatsapp.ts +++ b/backend/src/models/Whatsapp.ts @@ -38,7 +38,7 @@ class Whatsapp extends Model { @Default(false) @AllowNull @Column - default: boolean; + isDefault: boolean; @CreatedAt createdAt: Date; diff --git a/backend/src/services/WhatsappService/CreateWhatsAppService.ts b/backend/src/services/WhatsappService/CreateWhatsAppService.ts index 423f436..5127253 100644 --- a/backend/src/services/WhatsappService/CreateWhatsAppService.ts +++ b/backend/src/services/WhatsappService/CreateWhatsAppService.ts @@ -6,39 +6,43 @@ import Whatsapp from "../../models/Whatsapp"; interface Request { name: string; status?: string; + isDefault?: boolean; } const CreateWhatsAppService = async ({ name, - status = "INITIALIZING" + status = "INITIALIZING", + isDefault = false }: Request): Promise => { - // const schema = Yup.object().shape({ - // name: Yup.string().required().min(2), - // 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 } - // }); - // return !Boolean(whatsappFound); - // } else return true; - // } - // ) - // }); + const schema = Yup.object().shape({ + name: Yup.string().required().min(2), + isDefault: Yup.boolean() + .required() + .test( + "Check-default", + "Only one default whatsapp is permited", + async value => { + if (value === true) { + const whatsappFound = await Whatsapp.findOne({ + where: { isDefault: true } + }); + return !whatsappFound; + } + return true; + } + ) + }); - // try { - // await schema.validate({ name, status }); - // } catch (err) { - // throw new AppError(err.message); - // } + try { + await schema.validate({ name, status, isDefault }); + } catch (err) { + throw new AppError(err.message); + } const whatsapp = await Whatsapp.create({ name, - status + status, + isDefault }); return whatsapp;