gb_utils
Version:
All utils file for beta
68 lines (63 loc) • 3.63 kB
JavaScript
// Dependencies Import
const joi = require("joi");
const joiOid = require("joi-oid");
const PasswordComplexity = require("joi-password-complexity");
//Utils Import
const constantUtils = require("./constantUtils");
const validation = {};
validation.stringAllowNullValidation = joi.string().allow(null, "");
validation.stringValidation = joi.string().required();
validation.booleanValidation = joi.boolean().required();
validation.phoneCodeValidation = joi.string().required().max(5).min(2);
validation.idValidation = joiOid.objectId();
validation.otpValidation = joi.string().min(1).required();
validation.phoneNumberValidation = joi
.number()
.required()
.min(999)
.max(99999999999999)
.custom((value) => value.toString());
validation.emailValidation = joi.string().email().required();
validation.passwordValidation = joi.string().required().max(25).min(8);
validation.genderValidation = joi.string().valid(constantUtils.MALE, constantUtils.FEMALE, constantUtils.OTHERS).required();
validation.nameValidation = joi.string().required().min(1).max(60).trim();
validation.titleValidation = joi.string().required().min(1).max(100).trim();
validation.descriptionValidation = joi.string().required().min(1).max(256).trim();
validation.plotValidation = joi.string().required().min(1).trim();
validation.commentsValidation = joi.string().required().min(1).max(512).trim();
validation.pageValidation = joi.number().min(0).default(0);
validation.docsPerPage = joi.number().min(1).default(10);
validation.urlValidation = joi.string().min(1).uri();
validation.statusValidation = joi.string().valid(constantUtils.ACTIVE, constantUtils.INACTIVE, constantUtils.ARCHIEVE).default(constantUtils.ACTIVE);
validation.adminTypeValidation = joi
.string()
.valid(constantUtils.SUPERADMINS, constantUtils.SUBADMINS, constantUtils.HRADMINS, constantUtils.EMPLOYEES)
.default(constantUtils.EMPLOYEES);
validation.socialPlatformValidation = joi.string().valid(constantUtils.GOOGLE, constantUtils.FACEBOOK, constantUtils.DISCORD).default(constantUtils.GOOGLE);
validation.accountTypeValidation = joi
.string()
.valid(constantUtils.NORMAL, constantUtils.TOURNAMENT, constantUtils.TEAM, constantUtils.BRAND, constantUtils.STUDIO)
.default(constantUtils.NORMAL);
validation.statusFilterValidation = joi.string().valid(constantUtils.ACTIVE, constantUtils.INACTIVE, constantUtils.ARCHIEVE);
validation.statusTypeValidation = joi
.string()
.valid(constantUtils.UNVERIFIED, constantUtils.VERIFIED, constantUtils.BANNED, constantUtils.TERMINATED, constantUtils.DISABLED, constantUtils.SUSPENDED)
.default(constantUtils.UNVERIFIED);
validation.maritalStatusValidation = joi.string().valid(constantUtils.SINGLE, constantUtils.MARRIED);
validation.employeeTypeValidation = joi.string().valid(constantUtils.TEMPORARY, constantUtils.PERMANENT);
validation.passwordRegexValidation = PasswordComplexity({
min: 8,
max: 25,
lowerCase: 1,
upperCase: 1,
numeric: 1,
});
validation.usernameValidation = joi.alternatives().try(joi.string().email().required(), joi.string().required().min(1).max(60).trim());
validation.feedbackTypeValidation = joi.string().valid(constantUtils.MAJOR, constantUtils.MINOR, constantUtils.CRITICAL).required();
validation.reportTypeValidation = joi.string().valid(constantUtils.MAJOR, constantUtils.MINOR, constantUtils.CRITICAL).required();
validation.reportStatusValidation = joi.string().valid(constantUtils.NEW, constantUtils.RESOLVED, constantUtils.PROGRESS);
validation.tableLimitValidation = joi.object().keys({
num: joi.number().min(1).default(10),
status: joi.boolean().default(false),
});
module.exports = validation;