Compare commits

...

2 Commits

3 changed files with 32 additions and 9 deletions

View File

@ -93,7 +93,7 @@ export const store = async (req: Request, res: Response): Promise<Response> => {
number: Yup.string() number: Yup.string()
.required() .required()
.matches(/^\d+$/, "Invalid number format. Only numbers is allowed.") .matches(/^\d+$/, "Invalid number format. Only numbers is allowed.")
.matches(/^55\d+$/, "The number must start with 55.") // .matches(/^55\d+$/, "The number must start with 55.")
}); });
try { try {
@ -102,6 +102,8 @@ export const store = async (req: Request, res: Response): Promise<Response> => {
throw new AppError(err.message); throw new AppError(err.message);
} }
newContact.number = addStartPhoneNumber(newContact.number);
const validNumber = await CheckIsValidContact(newContact.number); const validNumber = await CheckIsValidContact(newContact.number);
// const validNumber: any = await CheckContactNumber(newContact.number) // const validNumber: any = await CheckContactNumber(newContact.number)
@ -157,9 +159,11 @@ export const update = async (
const schema = Yup.object().shape({ const schema = Yup.object().shape({
name: Yup.string(), name: Yup.string(),
number: Yup.string() number: Yup.string().matches(
.matches(/^\d+$/, "Invalid number format. Only numbers is allowed.") /^\d+$/,
.matches(/^55\d+$/, "The number must start with 55.") "Invalid number format. Only numbers is allowed."
)
// .matches(/^55\d+$/, "The number must start with 55.")
}); });
try { try {
@ -168,6 +172,8 @@ export const update = async (
throw new AppError(err.message); throw new AppError(err.message);
} }
contactData.number = addStartPhoneNumber(contactData.number);
await CheckIsValidContact(contactData.number); await CheckIsValidContact(contactData.number);
const { contactId } = req.params; const { contactId } = req.params;
@ -233,3 +239,13 @@ export const contacsBulkInsertOnQueue = async (
return res.status(200).json({ message: "ok" }); return res.status(200).json({ message: "ok" });
}; };
function addStartPhoneNumber(phoneNumber: string) {
const regex = /^55/;
if (!regex.test(phoneNumber)) {
phoneNumber = "55" + phoneNumber;
}
return phoneNumber;
}

View File

@ -66,7 +66,7 @@ export const reportUserService = async (req: Request, res: Response): Promise<Re
// let usersProfile = await ListUserParamiterService({ profile: 'user' }) // let usersProfile = await ListUserParamiterService({ profile: 'user' })
let usersProfile = await ListUserParamiterService({ let usersProfile = await ListUserParamiterService({
profile: "user", profiles: ["user", "supervisor"],
raw: true raw: true
}); });

View File

@ -2,15 +2,17 @@ import { Op, Sequelize } from "sequelize";
import Queue from "../../models/Queue"; import Queue from "../../models/Queue";
import User from "../../models/User"; import User from "../../models/User";
import UserQueue from "../../models/UserQueue"; import UserQueue from "../../models/UserQueue";
import { List } from "whatsapp-web.js"
interface Request { interface Request {
userId?: string | number; userId?: string | number;
profile?: string; profile?: string;
profiles?: Array<string>;
raw?: boolean; raw?: boolean;
userIds?: string | number userIds?: string | number;
} }
const ListUser = async ({ profile, userId, raw, userIds }: Request): Promise<User[]> => { const ListUser = async ({ profile, userId, raw, userIds, profiles }: Request): Promise<User[]> => {
let where_clause = {}; let where_clause = {};
if (userId && profile) { if (userId && profile) {
@ -29,6 +31,10 @@ const ListUser = async ({ profile, userId, raw, userIds }: Request): Promise<Use
where_clause = { where_clause = {
id: { [Op.in]: userIds } id: { [Op.in]: userIds }
}; };
} else if (profiles) {
where_clause = {
profile: { [Op.in]: profiles }
};
} }
const users = await User.findAll({ const users = await User.findAll({
@ -38,9 +44,10 @@ const ListUser = async ({ profile, userId, raw, userIds }: Request): Promise<Use
include: [ include: [
{ model: Queue, as: "queues", attributes: ["id", "name", "color"] } { model: Queue, as: "queues", attributes: ["id", "name", "color"] }
], ],
order: [["id", "ASC"]] order: [["id", "ASC"]],
group: ["User.id"]
}); });
return users; return users;