jsm-core
Version:
Core library for JSM project
47 lines (46 loc) • 1.8 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateRouteID = exports.phoneNumberValidator = exports.objectIdValidator = void 0;
const joi_1 = __importDefault(require("joi"));
const jsm_exceptions_1 = __importDefault(require("jsm-exceptions"));
const jsm_utilities_1 = require("jsm-utilities");
const node_1 = require("jsm-utilities/dist/node");
const objectIdValidator = (value, helpers) => {
if (!(0, node_1.isObjectIdValid)(value)) {
return helpers.error('string.pattern.base', { value });
}
// Return the value unchanged if it is valid
return value;
};
exports.objectIdValidator = objectIdValidator;
const phoneNumberValidator = (value, helpers) => {
if (!(0, jsm_utilities_1.isValidAlgerianPhoneNumber)(value)) {
return helpers.error('string.pattern.base', { value });
}
// Return the value unchanged if it is valid
return value;
};
exports.phoneNumberValidator = phoneNumberValidator;
/**
* @description
* @param {Jsm.Core.Users.Api.Users.ChangeRole.Request['data']} body
* @returns {Joi.ValidationResult<Jsm.Core.Users.Api.Users.ChangeRole.Request['data']>}
*/
const validateRouteID = (body) => {
if (!body)
throw new jsm_exceptions_1.default.ValidationException('Body data object is required');
const schema = joi_1.default.object({
/**
* @description Add your validation logic here
*/
id: joi_1.default.string().custom(exports.objectIdValidator).required(),
});
return schema.validate(body, {
abortEarly: false,
allowUnknown: true
});
};
exports.validateRouteID = validateRouteID;