add validation to whatsapp name

This commit is contained in:
canove
2020-09-19 09:59:10 -03:00
parent d3e0d1230f
commit 872e237b48
3 changed files with 22 additions and 6 deletions

View File

@@ -17,15 +17,13 @@ export const index = async (req: Request, res: Response): Promise<Response> => {
interface WhatsappData {
name: string;
status: string;
status?: string;
isDefault?: boolean;
}
export const store = async (req: Request, res: Response): Promise<Response> => {
// const io = getIO();
console.log("aqui");
const { name, status, isDefault }: WhatsappData = req.body;
const whatsapp = await CreateWhatsAppService({ name, status, isDefault });

View File

@@ -9,7 +9,8 @@ import {
AutoIncrement,
Default,
AllowNull,
HasMany
HasMany,
Unique
} from "sequelize-typescript";
import Ticket from "./Ticket";
@@ -20,6 +21,8 @@ class Whatsapp extends Model<Whatsapp> {
@Column
id: number;
@AllowNull
@Unique
@Column(DataType.TEXT)
name: string;

View File

@@ -15,12 +15,27 @@ const CreateWhatsAppService = async ({
isDefault = false
}: Request): Promise<Whatsapp> => {
const schema = Yup.object().shape({
name: Yup.string().required().min(2),
name: Yup.string()
.required()
.min(2)
.test(
"Check-name",
"This whatsapp name is already used.",
async value => {
if (value) {
const whatsappFound = await Whatsapp.findOne({
where: { name: value }
});
return !whatsappFound;
}
return true;
}
),
isDefault: Yup.boolean()
.required()
.test(
"Check-default",
"Only one default whatsapp is permited",
"Only one default whatsapp is permitted",
async value => {
if (value === true) {
const whatsappFound = await Whatsapp.findOne({