diff --git a/backend/src/controllers/WhatsAppController.js b/backend/src/controllers/WhatsAppController.js
index 75d1d68..22dccdc 100644
--- a/backend/src/controllers/WhatsAppController.js
+++ b/backend/src/controllers/WhatsAppController.js
@@ -1,3 +1,4 @@
+const Yup = require("yup");
const Whatsapp = require("../models/Whatsapp");
const { getIO } = require("../libs/socket");
const { getWbot, initWbot, removeWbot } = require("../libs/wbot");
@@ -5,13 +6,39 @@ const wbotMessageListener = require("../services/wbotMessageListener");
const wbotMonitor = require("../services/wbotMonitor");
exports.index = async (req, res) => {
- const whatsapp = await Whatsapp.findAll();
+ const whatsapps = await Whatsapp.findAll();
- return res.status(200).json(whatsapp);
+ return res.status(200).json(whatsapps);
};
exports.store = async (req, res) => {
+ 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 => {
+ // console.log("cai no if", value);
+ if (value === true) {
+ const defaultFound = await Whatsapp.findOne({
+ where: { default: true },
+ });
+ return !Boolean(defaultFound);
+ } else return true;
+ }
+ ),
+ });
+
+ try {
+ await schema.validate(req.body);
+ } catch (err) {
+ return res.status(400).json({ error: err.message });
+ }
+
const io = getIO();
+
const whatsapp = await Whatsapp.create(req.body);
if (!whatsapp) {
@@ -45,6 +72,31 @@ exports.show = async (req, res) => {
};
exports.update = async (req, res) => {
+ 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 => {
+ // console.log("cai no if", value);
+ if (value === true) {
+ const defaultFound = await Whatsapp.findOne({
+ where: { default: true },
+ });
+ return !Boolean(defaultFound);
+ } else return true;
+ }
+ ),
+ });
+
+ try {
+ await schema.validate(req.body);
+ } catch (err) {
+ return res.status(400).json({ error: err.message });
+ }
+
const io = getIO();
const { whatsappId } = req.params;
diff --git a/frontend/src/pages/WhatsApps/index.js b/frontend/src/pages/WhatsApps/index.js
index 36fdc67..e4dcbcb 100644
--- a/frontend/src/pages/WhatsApps/index.js
+++ b/frontend/src/pages/WhatsApps/index.js
@@ -4,6 +4,7 @@ import { toast } from "react-toastify";
import { format, parseISO } from "date-fns";
import { makeStyles } from "@material-ui/core/styles";
+import { green } from "@material-ui/core/colors";
import {
Button,
TableBody,
@@ -14,7 +15,7 @@ import {
TableHead,
Paper,
} from "@material-ui/core";
-import { Edit, DeleteOutline } from "@material-ui/icons";
+import { Edit, DeleteOutline, CheckCircle } from "@material-ui/icons";
import MainContainer from "../../components/MainContainer";
import MainHeader from "../../components/MainHeader";
@@ -228,6 +229,7 @@ const WhatsApps = () => {
Name
Status
Last update
+ Default
Actions
@@ -258,6 +260,11 @@ const WhatsApps = () => {
{format(parseISO(whatsApp.updatedAt), "dd/MM/yy HH:mm")}
+
+ {whatsApp.default && (
+
+ )}
+