Files
Exchange/server/middlewares/validation.ts
2025-11-07 22:24:40 +01:00

1873 lines
124 KiB
TypeScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { body, param, query, validationResult, check, cookie } from 'express-validator'
import myError from '../api/myError'
import { every, isDate, isLength } from 'lodash'
export function isEmailValid(mail) {
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(mail);
}
export const isValidMobilePhone = (phone) => {
return phone.length === 11 && (phone[0] === '0' || phone[0] === '۰') && (phone[1] === '9' || phone[1] === '۹') && (/^\d+$/.test(phone) || /^\d+$/.test(numbersFormatter( phone, 'en')))
}
const isValidDate = (d) => {
return d instanceof Date && !isNaN(d.getTime());
}
// A helper for converting non-persian numbers to persian ones.
let arabicNumbers = ["١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩", "٠"],
persianNumbers = ["۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹", "۰"],
englishNumbers = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"];
function searchAndReplaceInNumbers(value, source, target) {
for (let i = 0, len = target.length; i < len; i++) {
value = value.replace(new RegExp(source[i], "g"), target[i]);
}
return value;
}
export function numbersFormatter(value, to = "fa") {
value = typeof value === "number" ? String(value) : value;
if (!value) return value;
let output = value;
if (to === "fa") {
output = searchAndReplaceInNumbers(output, englishNumbers, persianNumbers);
output = searchAndReplaceInNumbers(output, arabicNumbers, persianNumbers);
} else if (to === "en") {
output = searchAndReplaceInNumbers(output, persianNumbers, englishNumbers);
output = searchAndReplaceInNumbers(output, arabicNumbers, englishNumbers);
}
return output;
}
import * as mongo from 'mongodb'
const ObjectId = mongo.ObjectID
export const userValidationRules = (type, input) => {
/// /////////////////////////////////////////
/// //////// body //////////////////////////
/// /////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// user ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
// ----------- SKH ----------------
// ------- body --------
if (type === 'body' && input === 'curGivenId') {
return [
body('curGivenId').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curGivenId is required!', clientMessage: 'شناسه ارز پیشنهادی مورد نیاز است!' }),
body('curGivenId').isMongoId().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curGivenId is not valid!', clientMessage: 'شناسه ارز پیشنهادی معتبر نیست!' })
]
} else if (type === 'body' && input === 'curGivenIdOp') {
return [
body('curGivenIdOp').optional().isMongoId()
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curGivenIdOp is not valid!', clientMessage: 'شناسه ارز پیشنهادی معتبر نیست!' })
]
} else if (type === 'body' && input === 'curGivenVal') {
return [
body('curGivenVal').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curGivenVal is required!', clientMessage: 'مقدار ارز پیشنهادی مورد نیاز است!' }),
body('curGivenVal').isNumeric().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curGivenVal is not valid!', clientMessage: 'مقدار ارز پیشنهادی معتبر نیست!' })
]
} else if (type === 'body' && input === 'curGivenValOp') {
return [
body('curGivenValOp').optional()
.custom((v) => {
if (!v.from && !v.to) {
return false
} else if (v.from && Number(v.from <= 0)) {
return false
} else if (v.to && Number(v.to <= 0)) {
return false
} else {
return true
}
})
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curGivenValOp is not valid!', clientMessage: 'مقدار ارز پیشنهادی معتبر نیست!' })
]
} else if (type === 'body' && input === 'curTakenId') {
return [
body('curTakenId').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curTakenId is required!', clientMessage: 'شناسه ارز درخواستی مورد نیاز است!' }),
body('curTakenId').isMongoId().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curTakenId is not valid!', clientMessage: 'شناسه ارز درخواستی معتبر نیست!' })
]
} else if (type === 'body' && input === 'curTakenIdOp') {
return [
body('curTakenIdOp').optional().isMongoId()
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curTakenIdOp is not valid!', clientMessage: 'شناسه ارز درخواستی معتبر نیست!' })
]
} else if (type === 'body' && input === 'curTakenVal') {
return [
body('curTakenVal').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curTakenVal is required!', clientMessage: 'مقدار ارز درخواستی مورد نیاز است!' }),
body('curTakenVal').isNumeric().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curTakenVal is not valid!', clientMessage: 'مقدار ارز درخواستی معتبر نیست!' })
]
} else if (type === 'body' && input === 'curTakenValOp') {
return [
body('curTakenValOp').optional()
.custom((v) => {
if (!v.from && !v.to) {
return false
} else if (v.from && Number(v.from <= 0)) {
return false
} else if (v.to && Number(v.to <= 0)) {
return false
} else {
return true
}
})
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curTakenValOp is not valid!', clientMessage: 'مقدار ارز پیشنهادی معتبر نیست!' })
]
} else if (type === 'body' && input === 'expDate') {
return [
body('expDate').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'expDate is required!', clientMessage: 'تاریخ انقضای پیشنهاد مورد نیاز است!' }),
body('expDate').isDate().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'expDate is not valid!', clientMessage: 'تاریخ انقضای پیشنهاد معتبر نیست!' })
]
} else if (type === 'body' && input === 'expDateOp') {
return [
body('expDateOp').optional()
.custom((v) => {
if (!v.from && !v.to) {
return false
} else if (v.from && isValidDate(v.from)) {
return false
} else if (v.to && isValidDate(v.to)) {
return false
} else if (v.from > v.to) {
return false
} else {
return true
} })
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'expDateOp is not valid!', clientMessage: 'تاریخ انقضا پیشنهادی معتبر نیست!' })
]
} else if (type === 'body' && input === 'created_atOp') {
return [
body('created_atOp').optional()
.custom((v) => {
if (!v.from && !v.to) {
return false
} else if (v.from && isValidDate(v.from)) {
return false
} else if (v.to && isValidDate(v.to)) {
return false
} else if (v.from > v.to) {
return false
} else {
return true
}
})
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'created_atOp is not valid!', clientMessage: 'تاریخ تولید پیشنهادی معتبر نیست!' })
]
} else if (type === 'body' && input === 'currency') {
return [
body('currency').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'currency is required!', clientMessage: 'ارز مورد نیاز است!' }),
body('currency').isMongoId().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'currency is not valid!', clientMessage: 'ارز معتبر نیست!' })
]
} else if (type === 'body' && input === 'quantity') {
return [
body('quantity').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'quantity is required!', clientMessage: 'تعداد درخواستی ارز مورد نیاز است!' }),
body('quantity').isNumeric().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'quantity is not valid!', clientMessage: 'تعداد درخواستی ارز معتبر نیست!' })
]
} if (type === 'body' && input === 'offerIdOp') {
return [
body('offerIdOp').optional().isUUID()
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'offerId is not valid!', clientMessage: 'شناسه پیشنهاد معتبر نیست!' })
]
}
// ------- Query --------
if (type === 'query' && input === 'offerId') {
return [
query('offerId').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'offerId is required!', clientMessage: 'شناسه پیشنهاد مورد نیاز است!' }),
query('offerId').isUUID().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'offerId is not valid!', clientMessage: 'شناسه پیشنهاد معتبر نیست!' })
]
}
// --------------------------------
// -------------------------------- /
else if((type === 'query' && input === 'currencyId')) {
return [
query('currencyId')
.exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "curreny id can not method not ", clientMessage: ' ارز نمی‌تواند خال باشد.' })
.isMongoId()
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curreny id is not valid!', clientMessage: 'ارز معتبر نیست.!' }),
]
}else if (type === 'body' && input === 'name') {
return [
body('name')
.exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "name cn not be empty", clientMessage: 'نام نمی تواند خالی باشد' })
.isString()
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'name is not valid!', clientMessage: ' نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'currencyName') {
return [
body('currencyName')
.exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "name cn not be empty", clientMessage: 'نام نمی تواند خالی باشد' })
.isString()
.custom((curName) => {
return (curName === 'BITCOIN') || (curName === 'RIAL') || (curName === 'TRON' ) || (curName === 'ETHEREUM')
})
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'currency name info is not valid!', clientMessage: ' نام معتبر نیست!' })
]
} else if((type === 'body' && input === 'persianName')) {
return [
body('persianName')
.exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "name cn not be empty", clientMessage: 'نام فارسی نمی تواند خالی باشد' })
.isString()
.custom((perName) => {
return perName === 'اتریوم' || perName === 'ترون' || perName === 'بیت کوین' || perName === 'ریال'
})
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'persian name is not valid !', clientMessage: ' نام فارسی معتبر نیست!' }),
]
} else if((type === 'body' && input === 'abName')) {
return [
body('abName')
.exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "short name can not be empty", clientMessage: 'مخفف نمی تواند خالی باشد' })
.isString()
.custom((shortName) => {
return shortName === 'ETH' || shortName === 'BTC' || shortName === 'TRX' || shortName === 'IRR'
})
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'short name is not valid!', clientMessage: ' مخفف معتبر نیست!' }),
]
} else if((type === 'body' && input === 'currencyId')) {
return [
body('currencyId')
.exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "curreny id can not method not ", clientMessage: ' ارز نمی‌تواند خال باشد.' })
.isMongoId()
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curreny id is not valid!', clientMessage: 'ارز معتبر نیست.!' }),
]
} else if((type === 'body' && input === 'currencyValue')) {
return [
body('currencyValue')
.exists()
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'curreny value is not exsist!', clientMessage: ' مقدار نمی تواند خالی باشد!' })
.isNumeric()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "currency value should be number", clientMessage: 'مقدار ارز بایذ عدد باشد' })
.custom((v) => {
return v >= 0
})
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'the value should be positive!', clientMessage: 'مقدار باید مثبت باشد' })
]
} else if((type === 'body' && input === 'receiverUserId')) {
return [
body('receiverUserId')
.exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: " receiver User Id can not be empty", clientMessage: ' شناسه گیرنده نمی تواند خالی باشد ' })
.isMongoId()
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'receiver User Id is not valid!', clientMessage: 'شناسه گیرنده معتبر نیست' })
]
} else if((type === 'body' && input === 'receiverUsername')) {
return [
body('receiverUsername')
.exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: " receiver Username can not be empty", clientMessage: ' شناسه گیرنده نمی تواند خالی باشد ' })
.custom((v) => {
return isEmailValid(v) || isValidMobilePhone(v)
})
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'receiver Username is not valid!', clientMessage: 'شناسه گیرنده معتبر نیست' })
]
}
/// /////////////////////////////////////////
/// //////// query //////////////////////////
/// /////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// user ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'query' && input === 'uuid') {
return [
query('uuid').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'uuid is required!', clientMessage: 'شناسه منحصربفرد پیشنهاد مورد نیاز است!' }),
query('uuid').isUUID().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'uuid is not valid!', clientMessage: 'شناسه منحصربفرد پیشنهاد معتبر نیست!' })
]
}
else if (type === 'body' && input === 'title') {
return [
body('title').optional().isString().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'title is not valid!', clientMessage: 'تیتر معتبر نیست!' }),
]
}
else if (type === 'body' && input === 'body') {
return [
body('body').exists().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'body is not present!', clientMessage: 'بدنه نظر موجود نیست!' }),
body('body').isString().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'body is not valid!', clientMessage: 'بدنه معتبر نیست!' }),
]
}
else if (type === 'body' && input === 'rate') {
return [
body('rate').optional().isNumeric().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'rate is not valid!', clientMessage: 'امتیاز معتبر نیست!' }),
]
}
else if (type === 'body' && input === 'titleOp') {
return [
body('titleOp').optional().isString().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'title is not valid!', clientMessage: 'تیتر معتبر نیست!' }),
]
}
else if (type === 'body' && input === 'bodyOp') {
return [
body('bodyOp').optional().isString().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'body is not valid!', clientMessage: 'بدنه نظر معتبر نیست!' }),
]
}
else if (type === 'body' && input === 'rateOp') {
return [
body('rateOp').optional().isNumeric().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'rate is not valid!', clientMessage: 'امتیاز معتبر نیست!' }),
]
}
else if (type === 'body' && input === 'reviewId') {
return [
body('reviewId').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ReviewId Code is required!', clientMessage: 'شناسه نظر مورد نیاز است!' }),
body('reviewId').isMongoId().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ReviewId Code is not valid!', clientMessage: 'شناسه نظر معتبر نیست!' })
]
}
else if (type === 'body' && input === 'question') {
return [
body('question').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'question is required!', clientMessage: 'سوال مورد نیاز است!' }),
body('question').isString().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'question is not valid!', clientMessage: 'سوال صحیح معتبر نیست!' })
]
}
else if (type === 'body' && input === 'profileName') {
return [
body('profileName').optional().isString().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'profileName is not valid!', clientMessage: 'نام معتبر نیست!' }),
]
}
else if (type === 'body' && input === 'profileLastName') {
return [
body('profileLastName').optional().exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'profileLastName is required!', clientMessage: 'نام خانوادگی معتبر نیست!' }),
// body('question').isString().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'question is not valid!', clientMessage: 'سوال صحیح معتبر نیست!' })
]
}
else if (type === 'body' && input === 'profileBirthdate') {
console.log(body('profileBirthdate'))
return [
body('profileBirthdate').optional()
.custom((v) => {
return v.year && v.month && v.day
})
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'profileBirthdate is required!', clientMessage: 'سن مورد نیاز است' }),
]
}
else if (type === 'body' && input === 'profilePhoneNumber') {
return [
body('profilePhoneNumber').optional().isString().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'profilePhoneNumber is required!', clientMessage: 'شماره تلفن مورد نیاز است!' }),
]
}
else if (type === 'body' && input === 'question') {
return [
body('question').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'question is required!', clientMessage: 'سوال مورد نیاز است!' }),
body('question').isString().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'question is not valid!', clientMessage: 'سوال صحیح معتبر نیست!' })
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// service ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'body' && input === 'productId') {
return [
body('productId').exists().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ProductId is required!', clientMessage: 'شناسه محصول مورد نیاز است!' }),
body('productId').isHexadecimal().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ProductId is not valid!', clientMessage: 'شناسه محصول معتبر نیست!' }),
body('productId').isMongoId().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ProductId is not valid!', clientMessage: 'شناسه محصول معتبر نیست!' })
]
} else if (type === 'body' && input === 'quantity') {
return [
body('quantity').exists().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Quantity is required!', clientMessage: 'تعداد محصول مورد نیاز است!' }),
body('quantity').isInt({ min: 1 }).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Quantity is not valid!', clientMessage: 'تعداد محصول معتبر نیست!' }),
]
} else if (type === 'body' && input === 'isExisted') {
return [
body('isExisted').optional().isBoolean().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'isExisted is not valid!', clientMessage: 'شناسه وجود معتبر نیست!' }),
]
}
else if (type === 'body' && input === 'rate') {
return [
body('rate').optional().isInt({ min: 1, max: 5 }).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Rate is not valid!', clientMessage: 'شناسه امتیازدهی معتبر نیست!' })
]
} else if (type === 'body' && input === 'productRate') {
return [
body('productRate').optional().isInt({ min: 1, max: 5 }).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productRate is not valid!', clientMessage: 'شناسه امتیازدهی معتبر نیست!' })
]
} else if (type === 'body' && input === 'brands') {
return [
body('brands').optional().isArray({ min: 1 }).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'brands is not valid!', clientMessage: 'شناسه برند معتبر نیست!' }),
]
} else if (type === 'body' && input === 'categoryBrands') {
return [
body('categoryBrands').optional().isArray({ min: 1 }).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryBrands is not valid!', clientMessage: 'شناسه برند معتبر نیست!' })
]
} else if (type === 'body' && input === 'priceObject') {
return [
body('priceObject').optional().custom((value) => { return (value.from >= 0 && value.to) }).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'priceObject are not valid!', clientMessage: 'مقادیر معتبر نیستند!' }),
body('priceObject').optional().custom((value) => { return value.from < value.to }).withMessage({ clientCode: 128, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'priceObject are not valid!', clientMessage: 'مقادیر معتبر نیستند!' }),
body('priceObject.from').optional().isInt({ min: 0 }).withMessage({ clientCode: 101, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'priceObject are not valid!', clientMessage: 'مقادیر معتبر نیستند!' }),
body('priceObject.to').optional().isInt({ min: 0 }).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'priceObject are not valid!', clientMessage: 'مقادیر معتبر نیستند!' }),
]
} else if (type === 'body' && input === 'offPercentOp') {
return [
body('offPercentOp').optional().isInt({ min: 1 }).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'OffPercent is not valid!', clientMessage: 'شناسه تخفیف معتبر نیست!' })
]
}
else if (type === 'body' && input === 'offPercent') {
return [
body('offPercent').exists().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'OffPercent is not present!', clientMessage: 'شناسه تخفیف لازم است!' }),
body('offPercent').isInt({min : 1}).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'OffPercent is not valid!', clientMessage: 'شناسه تخفیف معتبر نیست!' })
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// auth ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'body' && input === 'email') {
return [
body('email').exists().withMessage({ clientCode: 7, statusCode: 422, messageEnglish: 'Email and Password are required!', clientMessage: 'ایمیل و گذرواژه مورد نیاز است!' }),
body('email').isEmail().withMessage({ clientCode: 8, statusCode: 422, messageEnglish: 'Email or Password are not valid!', clientMessage: 'ایمیل یا گذرواژه معتبر نیست' })
]
} else if (type === 'body' && input === 'password') {
return [
body('password').exists().withMessage({ clientCode: 7, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Email and Password are required!', clientMessage: 'ایمیل و گذرواژه مورد نیاز است!' }),
body('password').isString().isLength({ min: 6 }).withMessage({ clientCode: 8, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Email or Password are not valid!', clientMessage: 'ایمیل یا گذرواژه معتبر نیست!' })
]
}
else if (type === 'body' && input === 'newPassword') {
return [
body('newPassword').exists().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Passwords are required!', clientMessage: 'گذرواژه ها مورد نیاز است!' }),
body('newPassword').isString().isLength({ min: 6 }).withMessage({ clientCode: 80, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'New password is not strong!', clientMessage: 'گذرواژه به اندازه کافی قوی انتخاب نشده است!' })
]
}
else if (type === 'body' && input === 'passwordConfirm') {
return [
body('passwordConfirm').exists().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Passwords are required!', clientMessage: 'گذرواژه ها مورد نیاز است!' }),
body('passwordConfirm').isString().isLength({ min: 6 }).withMessage({ clientCode: 80, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'New password is not strong!', clientMessage: 'گذرواژه به اندازه کافی قوی انتخاب نشده است!' })
]
} else if (type === 'body' && input === 'name') {
return [
body('name').exists().withMessage({ clientCode: 76, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Name is required!', clientMessage: 'نام مورد نیاز است!' }),
body('name').isString().isLength({ min: 1 }).withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Name is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'lastName') {
return [
body('lastName').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'LastName is required!', clientMessage: 'نام خانوادگی مورد نیاز است!' }),
body('lastName').isString().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'LastName is not valid!', clientMessage: 'نام خانوادگی معتبر نیست!' })
]
}
else if (type === 'body' && input === 'phoneNumber') {
return [
body('phoneNumber').optional()
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "phoneNumber", clientMessage: ' شماره تلفن ورودی معتبر نیست!' })
.isLength({ min: 8, max: 11 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "phoneNumber", clientMessage: ' آشماره تلفن ورودی معتبر نیست!' }),
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// admin ///////////////////////////////////////////////////////////////
/// //////////////////////////////////////////////////////////////////////////////z
else if (type === 'body' && input === 'orderOrderStatus') {
return [
// body('orderOrderStatus').optional().custom((v) => { return (v.status) })
// .withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'orderOrderStatus is required!', clientMessage: ' حالت ورودی سفارش معتبر نیست!' }),
// body('orderOrderStatus').optional()
// .custom((v) => { return Object.keys(v).every((i) => { return ['status', 'date'].includes(i) }) })
// .withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderStatus is not valid!", clientMessage: ' حالت ورودی سفارش معتبر نیست!' }),
body('orderOrderStatus').optional().equals('Canceled')
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderStatus is not valid!", clientMessage: ' حالت ورودی سفارش معتبر نیست!' }),
// body('orderOrderStatus.status').optional().isIn(['Pending', 'Successful', 'Failed', 'Canceled', 'Edited'])
// .withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderStatus's fields are not valid!", clientMessage: ' حالت ورودی سفارش معتبر نیست!' }),
// body('orderOrderStatus.date').optional().custom(isDate)
// .withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderStatus's fields are not valid!", clientMessage: ' حالت ورودی سفارش معتبر نیست!' })
]
} else if (type === 'body' && input === 'orderAddress') {
return [
body('orderAddress').optional()
.custom((v) => { return (v.phone || v.mobilePhone || v.city || v.address || v.province || v.postalCode) })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' }),
body('orderAddress')
.optional()
.custom((v) => {
return Object.keys(v)
.every((i) => { return ['phone', 'mobilePhone', 'city', 'address', 'province', 'postalCode'].includes(i) })
})
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' }),
body('orderAddress.phone').optional()
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' })
.isLength({ min: 8, max: 11 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' }),
body('orderAddress.mobilePhone').optional()
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' })
.isLength({ min: 10, max: 11 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' }),
body('orderAddress.city').optional()
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' })
.isLength({ min: 2, max: 20 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' }),
body('orderAddress.address').optional()
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' })
.isLength({ min: 1, max: 100 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' }),
body('orderAddress.province').optional()
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' })
.isLength({ min: 2, max: 20 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' }),
body('orderAddress.postalCode').optional()
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' })
.isLength({ min: 10, max: 10 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderAddress's fields are not valid!", clientMessage: ' آدرس ورودی سفارش معتبر نیست!' }),
]
} else if (type === 'body' && input === 'orderDelivery') {
return [
body('orderDelivery').optional().custom((v) => { return (v.status || v.date || v.code) })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderDelivery's fields are not valid!", clientMessage: 'وضعیت ارسال ورودی سفارش معتبر نیست!' }),
body('orderDelivery').optional()
.custom((v) => {
return Object.keys(v)
.every((i) => { return ['status', 'date', 'code'].includes(i) })
})
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderDelivery's fields are not valid!", clientMessage: 'وضعیت ارسال ورودی سفارش معتبر نیست!' }),
body('orderDelivery.status').optional().isIn(['Sent', 'Received', 'Failed','Unknown'])
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderDelivery's fields are not valid!", clientMessage: 'وضعیت ارسال ورودی سفارش معتبر نیست!' }),
body('orderDelivery.code').optional()
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderDelivery's fields are not valid!", clientMessage: 'وضعیت ارسال ورودی سفارش معتبر نیست!' })
.isLength({ min: 1, max: 15 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderDelivery's fields are not valid!", clientMessage: 'وضعیت ارسال ورودی سفارش معتبر نیست!' }),
body('orderDelivery.price').optional().isInt({ min: 0 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderDelivery's fields are not valid!", clientMessage: 'وضعیت ارسال ورودی سفارش معتبر نیست!' }),
body('orderDelivery.date').optional().custom((v)=>{
let date = new Date(v).getTime();
return date < new Date().getTime()
})
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderDelivery's fields are not valid!", clientMessage: 'وضعیت ارسال ورودی سفارش معتبر نیست!' })
]
} else if (type === 'body' && input === 'orderOrderId') {
return [
body('orderOrderId').exists()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not valid!", clientMessage: 'شناسه ورودی سفارش معتبر نیست!' }),
body('orderOrderId') .custom((v) => {
return (v.toString().indexOf(".1") > -1||(v.toString().indexOf(".2")> -1))
}
)
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not valid!", clientMessage: 'شناسه ورودی سفارش معتبر نیست!' })
]
} else if (type === 'body' && input === 'orderItems') {
return [
body('orderItems').optional()
.custom((v) => {
let existanceArray = []
return v.every((f) => {
if (existanceArray.includes(f.product.toString())) {
return false
}
existanceArray.push(f.product.toString())
return Object.keys(f).every((i) => {
if (i == 'product') { return ObjectId.isValid(f.product) }
else if (i == 'quantity') { return (Number.isInteger(Number(f.quantity)) && Number(f.quantity) >= 0) }
else { return false }
}
)
})
})
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderItems's fields are not valid!", clientMessage: 'تعداد ورودی سفارش معتبر نیست!' })
]
}
else if (type === 'body' && input === 'province') {
return [
body('province').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Province is required!', clientMessage: 'نام استان مورد نیاز است!' }),
body('province').isString().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Province is not valid!', clientMessage: 'نام استان معتبر نیست!' })
]
} else if (type === 'body' && input === 'title') {
return [
body('title').optional().isString().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'title is not valid!', clientMessage: 'عنوان آدرس معتبر نیست!' })
]
} else if (type === 'body' && input === 'district') {
return [
body('district').optional().isString().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'district is not valid!', clientMessage: 'منطقه شهری آدرس معتبر نیست!' }),
body('district').optional().isIn([
'منطقه ۱۱', 'منطقه ۱۰', 'منطقه ۹' ,'منطقه ۸','منطقه ۷','منطقه ۶','منطقه ۵','منطقه ۴','منطقه ۳','منطقه ۲','منطقه ۱',
'منطقه ۲۲','منطقه ۲۱','منطقه ۲۰','منطقه ۱۹','منطقه ۱۸','منطقه ۱۷','منطقه ۱۶','منطقه ۱۵','منطقه ۱۴','منطقه ۱۳','منطقه ۱۲'
])
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'district is not valid!', clientMessage: 'منطقه شهری آدرس معتبر نیست!' })
]
} else if (type === 'body' && input === 'city') {
return [
body('city').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'City is required!', clientMessage: 'نام شهر مورد نیاز است!' }),
body('city').isString().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'City is not valid!', clientMessage: 'نام شهر معتبر نیست!' })
]
} else if (type === 'body' && input === 'address') {
return [
body('address').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Address is required!', clientMessage: 'آدرس مورد نیاز است!' }),
body('address').isString().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Address is not valid!', clientMessage: 'آدرس معتبر نیست!' })
]
} else if (type === 'body' && input === 'postalCode') {
return [
body('postalCode').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'PostalCode is required!', clientMessage: 'کد پستی مورد نیاز است!' }),
body('postalCode')
.custom((v) => {
return v && v.length === 10 && (/^\d+$/.test(v) || /^\d+$/.test(numbersFormatter( v, 'en')))
})
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'PostalCode is not valid!', clientMessage: 'کد پستی معتبر نیست!' })
]
}
else if (type === 'body' && input === 'phone') {
return [
body('phone').optional()
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "phone's is not valid!", clientMessage: 'شماره تلفن معتبر نیست!' }),
body('phone').optional()
.isLength({ min: 5, max: 11 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "phone's is not valid!", clientMessage: 'شماره تلفن معتبر نیست!' }),
]
}
else if (type === 'body' && input === 'mobilePhone') {
return [
body('mobilePhone').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "MobilePhone's is not valid!", clientMessage: 'شماره موبایل معتبر نیست!' }),
body('mobilePhone')
.custom((v) => {
return v.length === 11 && (v[0] == '0' || v[0] == '۰') && (v[1] == '9' || v[1] == '۹') && (/^\d+$/.test(v) || /^\d+$/.test(numbersFormatter( v, 'en')))
})
.isLength({ min: 10, max: 11 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "MobilePhone's is not valid!", clientMessage: 'شماره موبایل معتبر نیست!' }),
]
} else if (type === 'body' && input === 'addressId') {
return [
body('addressId').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'AddressId Code is required!', clientMessage: 'شناسه آدرس مورد نیاز است!' }),
body('addressId').isMongoId().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'AddressId Code is not valid!', clientMessage: 'شناسه آدرس معتبر نیست!' })
]
} else if (type === 'body' && input === 'paymentMethod') {
return [
body('paymentMethod').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'PaymentMethod Code is required!', clientMessage: 'نحوه پرداخت مورد نیاز است!' }),
body('paymentMethod').isIn(['Cash', 'Online', 'FireBox', 'ChargeCapsule']).withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'PaymentMethod Code is not valid!', clientMessage: 'نحوه پرداخت معتبر نیست!' })
]
} else if (type === 'body' && input === 'offCodeId') {
return [
body('offCodeId').optional().isString().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'OffCodeId Code is required!', clientMessage: 'نام کد مورد معتبر نیست!' }),
body('offCodeId').optional().isLength({ min: 1 }).withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'OffCodeId Code is not valid!', clientMessage: 'نام کد معتبر نیست!' })
]
} else if (type === 'body' && input === 'filterQuantity') {
return [
body('filterQuantity').optional()
.custom((v) => {
return v.from && v.to && typeof(Number(v.from)) === 'number' && typeof(Number(v.to)) === 'number' && v.from < v.to
})
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'filterQuantity Code is required!', clientMessage: 'فیلتر تعداد معتبر نیست!' }),
]
} else if (type === 'body' && input === 'filterCategory') {
return [
body('filterCategory').optional()
.isString()
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'filterCategory Code is required!', clientMessage: 'فیلتر دسته بندی معتبر نیست!' }),
body('filterCategory').optional()
.isLength({ min: 1 })
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'filterCategory Code is required!', clientMessage: 'فیلتر دسته بندی معتبر نیست!' }),
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// admin ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'body' && input === 'reviewIds') {
return [
body('reviewIds').isArray({ min: 1 })
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ReviewId Code is not valid!', clientMessage: 'شناسه نظر معتبر نیست!' }),
body('reviewIds')
.custom((r) => {
r.every((i) => {
return i.isMongoId()
})
})
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ReviewId Code is not valid!', clientMessage: 'شناسه نظر معتبر نیست!' })
]
} else if (type === 'body' && input === 'qAndAs') {
return [
body('qAndAs').isArray({ min: 1 })
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'QAndAs Code are not valid!', clientMessage: 'شناسه های سوالات معتبر نیستند!' }),
body('qAndAs')
.custom((r) => {
r.every((i) => {
return i.isMongoId()
})
})
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'QAndAs Code are not valid!', clientMessage: 'شناسه های سوالات معتبر نیستند!' })
]
}
else if (type === 'body' && input === 'englishName') {
return [
body('englishName').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'englishName is required!', clientMessage: 'نام انگلیسی مورد نیاز است!' }),
body('englishName').isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'englishName is not valid!', clientMessage: 'نام انگلیسی معتبر نیست!' }),
body('englishName').isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'englishName is not valid!', clientMessage: 'نام انگلیسی معتبر نیست!' })
]
} else if (type === 'body' && input === 'productEnglishName') {
return [
body('productEnglishName').optional().isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productEnglishName is not valid!', clientMessage: 'نام انگلیسی معتبر نیست!' }),
body('productEnglishName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productEnglishName is not valid!', clientMessage: 'نام انگلیسی معتبر نیست!' })
]
} else if (type === 'body' && input === 'tags') {
return [
body('tags').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Tags is required!', clientMessage: 'تگ مورد نیاز است!' }),
body('tags').isArray({ min: 1, max: 10 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Tags is not valid!', clientMessage: 'تگ معتبر نیست!' })
]
} else if (type === 'body' && input === 'tagsOp') {
return [
body('tagsOp')
.optional().isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'TagsOp is not valid!', clientMessage: 'تگ معتبر نیست!' }),
body('tagsOp')
.optional().isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'TagsOp is not valid!', clientMessage: 'تگ معتبر نیست!' })
]
} else if (type === 'body' && input === 'productTags') {
return [
body('productTags').optional().isArray({ min: 1, max: 10 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productTags is not valid!', clientMessage: 'تگ معتبر نیست!' }),
body('productTags').optional().custom((v) => { return v.every((i) => { return typeof i === 'string' }) })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productTags is not valid!', clientMessage: 'تگ معتبر نیست!' })
]
} else if (type === 'body' && input === 'brand') {
return [
body('brand').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'brand is required!', clientMessage: 'نام برند مورد نیاز است!' }),
body('brand').isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'brand is not valid!', clientMessage: 'نام برند معتبر نیست!' }),
body('brand').isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'brand is not valid!', clientMessage: 'نام برند معتبر نیست!' })
]
} else if (type === 'body' && input === 'productBrand') {
return [
body('productBrand').optional().isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productBrand is not valid!', clientMessage: 'نام برند معتبر نیست!' }),
body('productBrand').optional().isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productBrand is not valid!', clientMessage: 'نام برند معتبر نیست!' })
]
} else if (type === 'body' && input === 'productCode') {
return [
body('productCode').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCode is required!', clientMessage: 'کد محصول مورد نیاز است!' }),
body('productCode').isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCode is not valid!', clientMessage: 'کد محصول معتبر نیست!' }),
body('productCode').isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCode is not valid!', clientMessage: 'کد محصول معتبر نیست!' })
]
} else if (type === 'body' && input === 'subCategory') {
return [
body('subCategory').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'subCategory is required!', clientMessage: 'زیر دسته بندی مورد نیاز است!' }),
body('subCategory').isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'subCategory is not valid!', clientMessage: 'زیر دسته بندی معتبر نیست!' }),
body('subCategory').isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'subCategory is not valid!', clientMessage: 'زیر دسته بندی معتبر نیست!' })
]
} else if (type === 'body' && input === 'productProductCode') {
return [
body('productProductCode').optional().isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productProductCode is not valid!', clientMessage: 'کد محصول معتبر نیست!' }),
body('productProductCode').optional().isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productProductCode is not valid!', clientMessage: 'کد محصول معتبر نیست!' })
]
} else if (type === 'body' && input === 'categoryCode') {
return [
body('categoryCode').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryCode is required!', clientMessage: 'کد دسته بندی مورد نیاز است!' }),
body('categoryCode').isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryCode is not valid!', clientMessage: 'کد دسته بندی معتبر نیست!' })
]
} else if (type === 'body' && input === 'productCategoryCode') {
return [
body('productCategoryCode').optional().isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCategoryCode is not valid!', clientMessage: 'کد دسته بندی معتبر نیست!' }),
body('productCategoryCode').optional().isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCategoryCode is not valid!', clientMessage: 'کد دسته بندی معتبر نیست!' })
]
} else if (type === 'body' && input === 'categoryCategoryCode') {
return [
body('categoryCategoryCode').optional().isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryCategoryCode is not valid!', clientMessage: 'کد دسته بندی معتبر نیست!' }),
body('categoryCategoryCode').optional().isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryCategoryCode is not valid!', clientMessage: 'کد دسته بندی معتبر نیست!' })
]
} else if (type === 'body' && input === 'categoryId') {
return [
body('categoryId').optional().isHexadecimal()
.withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'CategoryId is not valid!', clientMessage: 'شناسه دسته بندی معتبر نیست!' }),
body('categoryId').optional().isMongoId()
.withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'CategoryId is not valid!', clientMessage: 'شناسه دسته بندی معتبر نیست!' })
]
} else if (type === 'body' && input === 'image') {
return [
body('image').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'image is required!', clientMessage: 'آدرس عکس مورد نیاز است!' }),
body('image').isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'image is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' }),
body('image').isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'image is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' }),
body('image').custom((v) => { return v.split('.').length === 2 && ObjectId.isValid(v.split('.')[0]) })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'image is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' })
]
} else if (type === 'body' && input === 'productImage') {
return [
body('productImage').optional().isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productImage is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' }),
body('productImage').optional().isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productImage is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' }),
body('productImage').optional().custom((v) => { return v.split('.').length === 2 && ObjectId.isValid(v.split('.')[0]) })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productImage is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' })
]
} else if (type === 'body' && input === 'categoryImage') {
return [
body('categoryImage').optional().isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryImage is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' }),
body('categoryImage').optional().isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryImage is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' }),
body('categoryImage').optional().custom((v) => { return v.split('.').length === 2 && ObjectId.isValid(v.split('.')[0]) })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryImage is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' })
]
} else if (type === 'body' && input === 'categoryDescription') {
return [
body('categoryDescription').optional().isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryDescription is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' }),
body('categoryDescription').optional().isLength({ min: 1 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryDescription is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' })
]
} else if (type === 'body' && input === 'cardGallery') {
return [
body('cardGallery').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'cardGallery is required!', clientMessage: 'آدرس گالری مورد نیاز است!' }),
body('cardGallery').isArray({ min: 1, max: 3 })
.withMessage({ clientCode: 80, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'cardGallery is not valid!', clientMessage: 'آدرس گالری معتبر نیست!' })
]
} else if (type === 'body' && input === 'productCardGallery') {
return [
body('productCardGallery').optional().isArray({ min: 1, max: 3 })
.withMessage({ clientCode: 80, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCardGallery is not valid!', clientMessage: 'آدرس گالری معتبر نیست!' }),
body('productCardGallery').optional().custom((v) => { return every((i) => { return i.split('.').length === 2 && ObjectId.isValid(i.split('.')[0]) }) })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCardGallery is not valid!', clientMessage: 'آدرس عکس معتبر نیست!' })
]
} else if (type === 'body' && input === 'price') {
return [
body('price').exists().withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'price required!', clientMessage: 'قیمت مورد نیاز است!' }),
body('price').isInt({ min: 1 }).withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'price are not valid!', clientMessage: 'قیمت معتبر نیست!' })
]
} else if (type === 'body' && input === 'newPrice') {
return [
body('newPrice').optional().isInt({ min: 1 }).withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'newPrice are not valid!', clientMessage: 'قیمت جدید معتبر نیست!' })
]
} else if (type === 'body' && input === 'productPrice') {
return [
body('productPrice').optional().isInt({ min: 1 }).withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productPrice are not valid!', clientMessage: 'قیمت معتبر نیست!' })
]
} else if (type === 'body' && input === 'productNewPrice') {
return [
body('productNewPrice').optional().isInt({ min: 1 }).withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productNewPrice are not valid!', clientMessage: 'قیمت جدید معتبر نیست!' })
]
} else if (type === 'body' && input === 'description') {
return [
body('description').optional().isString().isLength({ min: 1, max: 1000 }).withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Body are not valid!', clientMessage: 'توضیح بیشتر معتبر نیست!' }),
body('gallery').optional().isArray({ min: 1, max: 20 }).withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Gallery are not valid!', clientMessage: 'گالری معتبر نیست!' })
]
} else if (type === 'body' && input === 'productDescription') {
return [
body('productDescription').optional()
.isString()
.withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Body are not valid!', clientMessage: 'توضیح بیشتر معتبر نیست!' })
.isLength({ max: 1000 })
.withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Body are not valid!', clientMessage: 'توضیح بیشتر معتبر نیست!' })
]
} else if (type === 'body' && input === 'productGallery') {
return [
body('productGallery').optional().isArray({ max: 20 })
.withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Gallery are not valid!', clientMessage: 'گالری معتبر نیست!' })
]
}
else if (type === 'body' && input === 'cardProperties') {
return [
body('cardProperties').optional().isArray({ max: 10 })
.withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'CardProperties are not valid!', clientMessage: 'ویژگی های کارت معتبر نیستند!' }),
body('cardProperties')
.optional()
.custom((v) => {
return v.every((i) => { return i.key && typeof i.key === 'string' && i.value && typeof i.value === 'string' })
})
.withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'CardProperties are not valid!', clientMessage: 'ویژگی های کارت معتبر نیستند!' })
]
} else if (type === 'body' && input === 'properties') {
return [
body('properties').optional().isArray({ max: 10 })
.withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Properties are not valid!', clientMessage: 'ویژگی های کارت معتبر نیستند!' }),
body('properties')
.optional()
.custom((v) => {
return v.every((i) => {
i.title && i.content && Array.isArray(i.content) && i.content.length > 0
// return i.content.every((j) => { return j.key && typeof j.key === 'string' && j.value && typeof j.value === 'string' })
})
})
.withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Properties are not valid!', clientMessage: 'ویژگی های کارت معتبر نیستند!' })
]
} else if (type === 'body' && input === 'accessLevels') {
return [
body('accessLevels').optional().notEmpty().withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'AccessLevels are not valid!', clientMessage: 'سطوح دسترسی معتبر نیستند!' })
]
} else if (type === 'body' && input === 'productCardProperties') {
return [
body('productCardProperties').optional().isArray({ min: 1 }).withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCardProperties are not valid!', clientMessage: 'ویژگی های کارت معتبر نیستند!' })
]
} else if (type === 'body' && input === 'productProperties') {
return [
body('productProperties').optional().isArray({ min: 1 }).withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productProperties are not valid!', clientMessage: 'ویژگی های کارت معتبر نیستند!' })
]
} else if (type === 'body' && input === 'productAccessLevels') {
return [
body('productAccessLevels').optional().notEmpty()
.withMessage({ clientCode: 15, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productAccessLevels are not valid!', clientMessage: 'سطوح دسترسی معتبر نیستند!' })
]
} else if (type === 'body' && input === 'commercialhName') {
return [
body('commercialhName').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'CommercialhName is required!', clientMessage: 'نام تجاری مورد نیاز است!' }),
body('commercialhName').isString().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'CommercialhName is not valid!', clientMessage: 'نام تجاری معتبر نیست!' })
]
} else if (type === 'body' && input === 'searchItems') {
return [
body('searchItems').optional().isArray({ min: 1, max: 7 }).withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'searchItems is not valid!', clientMessage: 'آیتم های جستجو معتبر نیستند!' })
]
} else if (type === 'body' && input === 'categorySearchItems') {
return [
body('categorySearchItems').optional().isArray({ min: 1, max: 7 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categorySearchItems is not valid!', clientMessage: 'آیتم های جستجو معتبر نیستند!' })
]
} else if (type === 'body' && input === '_id') {
return [
body('_id').exists()
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: '_id is required!', clientMessage: 'شناسه مورد نیاز است!' }),
body('_id').isHexadecimal()
.withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: '_id is not valid!', clientMessage: 'شناسه معتبر نیست!' }),
body('_id').isMongoId()
.withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: '_id is not valid!', clientMessage: 'شناسه معتبر نیست!' })
]
} else if (type === 'body' && input === 'managerName') {
return [
body('managerName').optional().isString()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'managerName is not valid!', clientMessage: 'نام معتبر نیست!' }),
body('managerName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'managerName is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'managerLastName') {
return [
body('managerLastName').optional().isString()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'managerLastName is not valid!', clientMessage: 'نام معتبر نیست!' }),
body('managerLastName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'managerLastName is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'managerEmail') {
return [
body('managerEmail').optional().isEmail()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'managerEmail is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'managerIsActive') {
return [
body('managerIsActive').optional().isBoolean()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'managerIsActive is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'managerRole') {
return [
body('managerRole').optional().isIn(['Supporter', 'Manager', 'Deliveryman'])
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'managerRole is not valid!', clientMessage: 'ورودی های ویرایش محصول معتبر نیستند!' })
]
} else if (type === 'body' && input === 'supporterName') {
return [
body('supporterName').optional().isString()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'supporterName is not valid!', clientMessage: 'نام معتبر نیست!' }),
body('supporterName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'supporterName is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'supporterLastName') {
return [
body('supporterLastName').optional().isString()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'supporterLastName is not valid!', clientMessage: 'نام معتبر نیست!' }),
body('supporterLastName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'supporterLastName is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'supporterEmail') {
return [
body('supporterEmail').optional().isEmail()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'supporterEmail is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'supporterIsActive') {
return [
body('supporterIsActive').optional().isBoolean()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'supporterIsActive is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'supporterRole') {
return [
body('supporterRole').optional().isIn(['Supporter', 'Manager', 'Deliveryman'])
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'supporterRole is not valid!', clientMessage: 'ورودی های ویرایش محصول معتبر نیستند!' })
]
} else if (type === 'body' && input === 'deliverymanName') {
return [
body('deliverymanName').optional().isString()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliverymanName is not valid!', clientMessage: 'نام معتبر نیست!' }),
body('deliverymanName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliverymanName is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'deliverymanLastName') {
return [
body('deliverymanLastName').optional().isString()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliverymanLastName is not valid!', clientMessage: 'نام خانوادگی معتبر نیست!' }),
body('deliverymanLastName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliverymanLastName is not valid!', clientMessage: 'نام خانوادگی معتبر نیست!' })
]
} else if (type === 'body' && input === 'deliverymanEmail') {
return [
body('deliverymanEmail').optional().isEmail()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliverymanEmail is not valid!', clientMessage: 'نام کاربری معتبر نیست!' })
]
} else if (type === 'body' && input === 'deliverymanIsActive') {
return [
body('deliverymanIsActive').optional().isBoolean()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliverymanIsActive is not valid!', clientMessage: 'مجوز فعالیت معتبر نیست!' })
]
} else if (type === 'body' && input === 'deliverymanRole') {
return [
body('deliverymanRole').optional().isIn(['Supporter', 'Manager', 'Deliveryman'])
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliverymanRole is not valid!', clientMessage: 'نقش معتبر نیست!' })
]
} else if (type === 'body' && input === 'userIsActive') {
return [
body('userIsActive').optional().isBoolean()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'userIsActive is not valid!', clientMessage: 'نام معتبر نیست!' })
]
} else if (type === 'body' && input === 'userUserType') {
return [
body('userUserType').optional().isIn(['Normal', 'Builder', 'Vip'])
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'userUserType is not valid!', clientMessage: 'ورودی های ویرایش محصول معتبر نیستند!' })
]
}
else if (type === 'body' && input === 'isActive') {
return [
body('isActive').exists()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'IsActive is not valid!', clientMessage: 'ورودی های ویرایش محصول معتبر نیستند!' }),
body('isActive').isBoolean()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'IsActive is not valid!', clientMessage: 'ورودی های ویرایش محصول معتبر نیستند!' })
]
}
else if (type === 'body' && input === 'role') {
return [
body('role').exists()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Role is not valid!', clientMessage: 'ورودی های ویرایش محصول معتبر نیستند!' }),
body('role').isIn(['Supporter', 'Manager'])
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Role is not valid!', clientMessage: 'ورودی های ویرایش محصول معتبر نیستند!' })
]
} else if (type === 'body' && input === 'quantity') {
return [
body('quantity').exists().withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Quantity is required!', clientMessage: 'تعداد مورد نیاز است!' }),
body('quantity').isInt({ min: 0 }).withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Quantity are not valid!', clientMessage: 'تعداد معتبر نیست!' })
]
} else if (type === 'body' && input === 'regionNum') {
return [
body('regionNum').exists().withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'RegionNum is required!', clientMessage: 'شماره منطقه مورد نیاز است!' }),
body('regionNum').isInt({ min: 0, max: 22 }).withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'RegionNum are not valid!', clientMessage: 'شماره منطقه معتبر نیست!' })
]
} else if (type === 'body' && input === 'shippingPrice') {
return [
body('shippingPrice').exists().withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ShippingPrice is required!', clientMessage: 'قیمت ارسال مورد نیاز است!' }),
body('shippingPrice').isInt({ min: 0 }).withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ShippingPrice are not valid!', clientMessage: 'قیمت ارسال معتبر نیست!' })
]
} else if (type === 'body' && input === 'userId') {
return [
body('userId').exists().withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'UserId is required!', clientMessage: 'شناسه مورد نیاز است!' }),
]
} else if (type === 'body' && input === 'id') {
return [
body('id').exists().withMessage({ clientCode: 4, statusCode: 422, messageEnglish: 'Verification Code is required!', clientMessage: 'کد راستی آزمایی مورد نیاز است!' }),
body('id').isUUID().withMessage({ clientCode: 5, statusCode: 422, messageEnglish: 'Verification Code is not valid!', clientMessage: 'کد راستی آزمایی معتبر نیست!' })
]
}
//what was this?
// else if (type === 'body' && input === 'c') {
// return [
// body('id').exists().withMessage({ clientCode: 4, statusCode: 422, messageEnglish: 'Verification Code is required!', clientMessage: 'کد راستی آزمایی مورد نیاز است!' }),
// body('id').isUUID().withMessage({ clientCode: 5, statusCode: 422, messageEnglish: 'Verification Code is not valid!', clientMessage: 'کد راستی آزمایی معتبر نیست!' })
// ]
// }
else if (type === 'body' && input === 'verificationCode') {
return [
body('verificationCode').exists().withMessage({ clientCode: 4, statusCode: 422, messageEnglish: 'Verification Code is required!', clientMessage: 'کد راستی آزمایی مورد نیاز است!' }),
body('verificationCode').isString().isLength({ min: 4, max: 4 }).withMessage({ clientCode: 5, statusCode: 422, messageEnglish: 'Verification Code is not valid!', clientMessage: 'کد راستی آزمایی معتبر نیست!' })
]
}
else if (type === 'body' && input === 'answer') {
return [
body('answer').exists().withMessage({ clientCode: 4, statusCode: 422, messageEnglish: 'Verification Code is required!', clientMessage: 'کد راستی آزمایی مورد نیاز است!' }),
body('answer').isString().isLength({ min: 1, max: 200 }).withMessage({ clientCode: 5, statusCode: 422, messageEnglish: 'Verification Code is not valid!', clientMessage: 'کد راستی آزمایی معتبر نیست!' })
]
} else if (type === 'body' && input === 'questionId') {
return [
body('questionId').exists().withMessage({ clientCode: 4, statusCode: 422, messageEnglish: 'Verification Code is required!', clientMessage: 'کد راستی آزمایی مورد نیاز است!' }),
body('questionId').isMongoId().withMessage({ clientCode: 5, statusCode: 422, messageEnglish: 'Verification Code is not valid!', clientMessage: 'کد راستی آزمایی معتبر نیست!' })
]
} else if (type === 'body' && input === 'username') {
return [
body('username').exists().withMessage({ clientCode: 11, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Username address is required!', clientMessage: 'نام کاربری مورد نیاز است!' }),
body('username')
.custom((v) => {
return isEmailValid(v) || isValidMobilePhone(v)
})
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Username address is not valid!', clientMessage: 'نام کاربری معتبر نیست!' })
]
} else if (type === 'body' && input === 'queries') {
return [
body('queries').exists().withMessage({ clientCode: 38, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Queries are required!', clientMessage: 'جستجوها مورد نیاز است!' }),
body('queries').isArray({ min: 1 }).withMessage({ clientCode: 38, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Queries are not valid!', clientMessage: 'جستجوها معتبر نیستند!' })
]
} else if (type === 'body' && input === 'commercialName') {
return [
body('commercialName').exists()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'commercialName required!', clientMessage: 'نام تجاری مورد نیاز است!' }),
body('commercialName').isString()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'commercialName are not valid!', clientMessage: 'نام تجاری معتبر نیست!' })
]
} else if (type === 'body' && input === 'categoryName') {
return [
body('categoryName').optional().isString()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryName are not valid!', clientMessage: 'نام تجاری معتبر نیست!' }),
body('categoryName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryName are not valid!', clientMessage: 'نام تجاری معتبر نیست!' })
]
} else if (type === 'body' && input === 'productName') {
return [
body('productName').optional().isString()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productName are not valid!', clientMessage: 'نام تجاری معتبر نیست!' }),
body('productName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productName are not valid!', clientMessage: 'نام تجاری معتبر نیست!' })
]
} else if (type === 'body' && input === 'categoryCommercialName') {
return [
body('categoryCommercialName').optional().isString()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryCommercialName are not valid!', clientMessage: 'نام تجاری معتبر نیست!' }),
body('categoryCommercialName').optional().isLength({ min: 1 })
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryCommercialName are not valid!', clientMessage: 'نام تجاری معتبر نیست!' })
]
} else if (type === 'body' && input === 'code') {
return [
body('code').exists()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Code are not valid!', clientMessage: 'نام کد تخفیف مورد نیاز است!' }),
body('code').isString()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Code are not valid!', clientMessage: 'نام کد تخفیف معتبر نیست!' }),
body('code').isLength({ min: 1 })
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Code are not valid!', clientMessage: 'نام کد تخفیف معتبر نیست!' })
]
} else if (type === 'body' && input === 'type') {
return [
body('type').exists()
.withMessage({ clientCode: 52, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Type is required!', clientMessage: 'نوع مورد نیاز است!' }),
body('type').isIn(['ALL_ALL', 'ALL_CATEGORY', 'ALL_PRODUCT', 'ONE_ALL', 'ONE_CATEGORY', 'ONE_PRODUCT'])
.withMessage({ clientCode: 53, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Type is not valid!', clientMessage: 'نوع معتبر نیست!' }),
]
} else if (type === 'body' && input === 'usernameOp') {
return [
body('usernameOp').optional()
.custom((v) => {
return isEmailValid(v) || isValidMobilePhone(v)
})
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'UsernameOp is not valid!', clientMessage: 'آدرس ایمیل معتبر نیست!' })
]
} else if (type === 'body' && input === 'minPrice') {
return [
body('minPrice').optional().isInt({ min: 1 })
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'minPrice is not valid!', clientMessage: 'حداقل میزان خرید معتبر نیست!' })
]
} else if (type === 'body' && input === 'maxOff') {
return [
body('maxOff').optional().isInt({ min: 1 })
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'maxOff is not valid!', clientMessage: 'حداکثر تخفیف روی یک آیتم معتبر نیست!' })
]
} else if (type === 'body' && input === 'maxTotalOff') {
return [
body('maxTotalOff').optional().isInt({ min: 1 })
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'maxTotalOff is not valid!', clientMessage: 'حداکثر تخفیف در یک خرید معتبر نیست!' })
]
} else if (type === 'body' && input === 'offPercent') {
return [
body('offPercent').exists()
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'offPercent is not valid!', clientMessage: 'درصد تخفیف مورد نیاز است!' }),
body('offPercent').isInt({ min: 1 })
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'offPercent is not valid!', clientMessage: 'درصد تخفیف معتبر نیست!' })
]
} else if (type === 'body' && input === 'quantityOp') {
return [
body('quantityOp').optional().isInt({ min: 1 })
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'quantity is not valid!', clientMessage: 'تعداد مجاز استفاده از کد تخفیف معتبر نیست!' })
]
} else if (type === 'body' && input === 'expiredDate') {
return [
body('expiredDate').exists()
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'expiredDate is not valid!', clientMessage: 'تاریخ انقضا مورد نیاز است!' }),
body('expiredDate').custom((v)=>{
let date = new Date(v).getTime();
console.log('date is ' , date, 'and the diffrence is ' , new Date().getTime()-date )
return date > new Date().getTime()
})
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'expiredDate is not valid!', clientMessage: 'تاریخ انقضا معتبر نیست!' })
]
} else if (type === 'body' && input === 'codeOp') {
return [
body('codeOp').optional().isString()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Code are not valid!', clientMessage: 'نام کد تخفیف معتبر نیست!' }),
body('codeOP').optional().isLength({ min: 1 })
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Code are not valid!', clientMessage: 'نام کد تخفیف معتبر نیست!' })
]
} else if (type === 'body' && input === 'date') {
return [
body('date').optional().custom(v => { return (v.from && v.from === v.from.getTime()) || (v.to && v.to === v.from.getTime()) })
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Date is not valid!', clientMessage: 'تاریخ انقضا معتبر نیست!' })
]
} else if (type === 'body' && input === 'isValid') {
return [
body('isValid').optional().isBoolean()
.withMessage({ clientCode: 12, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'isValid is not valid!', clientMessage: 'پرچم نمایش تمام کدها معتبر نیست!' })
]
} else if (type === 'body' && input === 'orderId') {
return [
body('orderId').exists().isFloat()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not present!", clientMessage: 'شناسه ورودی سفارش موجود نیست!' }),
body('orderId')
.custom((v) => {
return ['1', '2', '3', '4'].includes(v.toString().split('.')[1])
})
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not valid!", clientMessage: 'شناسه ورودی سفارش معتبر نیست!' })
]
}
else if (type === 'body' && input === 'paymentMethodOp') {
return [
body('paymentMethodOp').optional().isString().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'PaymentMethod Code is not valid!', clientMessage: 'نحوه پرداخت معتبر نیست!' }),
body('paymentMethodOp').optional().isIn(['Cash', 'Online']).withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'PaymentMethod Code is not valid!', clientMessage: 'نحوه پرداخت معتبر نیست!' })
]
} else if (type === 'body' && input === 'deliveryStatusOp') {
return [
body('deliveryStatusOp').optional().isString()
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliver status is not valid!', clientMessage: 'وضعیت ارسال معتبر نیست' }),
body('deliveryStatusOp').optional().isIn(['Sent', 'Received', 'Failed','Unknown'])
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliver status is not valid!', clientMessage: 'وضعیت ارسال معتبر نیست' }),
]
} else if (type === 'body' && input === 'deliveryStatus') {
return [
body('deliveryStatus').exists()
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliver status is not valid!', clientMessage: 'وضعیت ارسال معتبر نیست' }),
body('deliveryStatus').isIn(['Sent', 'Received', 'Failed','Unknown'])
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'deliver status is not valid!', clientMessage: 'وضعیت ارسال معتبر نیست' }),
]
} else if (type === 'body' && input === 'usernameOp') {
return [
body('usernameOp').optional().isEmail()
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'username is not valid!', clientMessage: 'وضعیت یوزرنیم ارسالی معتبر نیست' }),
]
}
else if (type === 'body' && input === 'orderStatusOp') {
return [
body('orderStatusOp').optional().isString()
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'order status is not valid!', clientMessage: 'وضعیت سفارش معتبر نیست' }),
body('orderStatusOp').optional().isIn(['Successful', 'Failed', 'Reverted','Canceled','Pending','Edited'])
.withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'order status is not valid!', clientMessage: 'وضعیت سفارش معتبر نیست' }),
]
}
else if (type === 'body' && input=== 'dateOp'){
return [
// body('dateOp').optional()
// .custom((v) => {
// return Object.keys(v).length ===2})
// .withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'date object is not valid!', clientMessage: 'وضعیت تاریخ های ورودی معتبر نیست' }),
body('dateOp').optional()
.custom((v) => {
let from = new Date(v.from).getTime();
let to = new Date(v.to).getTime();
if ( to > from){
return true}
else return false
}) .withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'date object is not valid!', clientMessage: 'وضعیت تاریخ های ورودی معتبر نیست' }),
]
}
else if (type === 'body' && input=== 'priceOp'){
return [
body('priceOp').optional()
.custom((v) => {
return Object.keys(v)
.every((i) => { return ['from', 'to'].includes(i) })
}) .withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'price object is not valid!', clientMessage: 'وضعیت قیمت های ورودی معتبر نیست' }),
body('priceOp').optional()
.custom((v) => {
if ( v["to"] > v["from"]){
return true}
else return false
}) .withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'price object is not valid!', clientMessage: 'وضعیت قیمت های ورودی معتبر نیست' }),
]
}
else if (type === 'body' && input === 'orderIdOp') {
return [
body('orderIdOp').optional().isFloat()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not valid!", clientMessage: 'شناسه ورودی سفارش معتبر نیست!' }),
body('orderIdOp').optional().custom((v) => {
return (v.toString().indexOf(".1") > -1||(v.toString().indexOf(".2")> -1))
})
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not valid!", clientMessage: 'شناسه ورودی سفارش معتبر نیست!' })
]
}
else if (type === 'body' && input === 'isExcel') {
return [
body('isExcel').optional().isBoolean().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'excel flag is invalid!', clientMessage: 'وضعیت خروجی اکسل صحیح نیست' }),
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// ticket ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'body' && input === 'ticketSubject') {
return [
body('ticketSubject').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'subject is required!', clientMessage: 'متن موضوع مورد نیاز است!' }),
body('ticketSubject').isString().isLength({ min: 8, max: 1500 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'subject is not valid!', clientMessage: 'متن موضوع معتبر نیست!' })
]
}
else if (type === 'body' && input === 'ticketType') {
return [
body('ticketType').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticketType is required!', clientMessage: 'نوع تیکت مورد نیاز است!' }),
body('ticketType').isString().custom((k) => {
return ["Task","Issue"].includes(k)
})
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticketType is not valid!', clientMessage: 'نوع تیکت معتبر نیست!' })
]
}
else if (type === 'body' && input === 'ticketIssue') {
return [
body('ticketIssue').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticketIssue is required!', clientMessage: 'متن مشکل مورد نیاز است!' }),
body('ticketIssue').isString().isLength({ min: 8, max: 1500 })
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticketIssue is not valid!', clientMessage: 'متن مشکل معتبر نیست!' })
]
}
else if (type === 'body' && input === 'ticketId') {
return [
body('ticketId').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticket id is required!', clientMessage: 'کد تیکت مورد نیاز است!' }),
body('ticketId').isMongoId().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticket id is not valid!', clientMessage: 'کد تیکت معتبر نیست!' })
]
}
else if (type === 'body' && input === 'ticketIdArray') {
return [
body('ticketIdArray').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticket id is required!', clientMessage: 'کد تیکت مورد نیاز است!' }),
body('ticketIdArray').isArray().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticket id is required!', clientMessage: 'کد تیکت مورد نیاز است!' }),
body('ticketIdArray') .custom((r) => {
return r.every((i) => {
console.log("i is ", i)
return ObjectId.isValid(i)
})
}).
withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticket id is not valid!', clientMessage: 'کد تیکت معتبر نیست!' })
]
}
else if (type === 'body' && input === 'ticketComment') {
return [
body('ticketComment').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticketComment is required!', clientMessage: 'متن تیکت مورد نیاز است!' }),
body('ticketComment').isString().isLength({ min: 8, max: 1500 }).withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticketComment is not valid!', clientMessage: 'متن تیکت معتبر نیست!' })
]
}
else if (type === 'body' && input === 'ticketPriority') {
return [
body('ticketPriority').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticketPriority is required!', clientMessage: 'متن الویت مورد نیاز است!' }),
body('ticketPriority').isString().custom((k) => {
return ["Urgent","Normal","Critical"].includes(k)
})
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticketPriority is not valid!', clientMessage: ' الویت معتبر نیست!' })
]
}
/// /////////////////////////////////////////
/// //////// query /////////////////////////
/// /////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// ticket ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'query' && input === 'ticketId') {
return [
query('ticketId').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticket id is required!', clientMessage: 'کد تیکت مورد نیاز است!' }),
query('ticketId').isMongoId().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticket id is not valid!', clientMessage: 'کد تیکت معتبر نیست!' })
]
}
else if (type === 'query' && input === 'ticketStatus') {
return [
query('ticketStatus').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticket status is required!', clientMessage: 'کد تیکت مورد نیاز است!' }),
query('ticketStatus').isString().custom((k) => {
return ["0", "1","2","3"].includes(k)
})
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ticket status is not valid!', clientMessage: 'وضعیت تیکت معتبر نیست!' })
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// admin ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'query' && input === 'categoryCode') {
return [
query('categoryCode').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryCode is required!', clientMessage: 'کد دسته بندی مورد نیاز است!' }),
query('categoryCode').isString().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'categoryCode is not valid!', clientMessage: 'کد دسته بندی معتبر نیست!' })
]
} else if (type === 'query' && input === 'productCode') {
return [
query('productCode').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCode is required!', clientMessage: 'کد محصول مورد نیاز است!' }),
query('productCode').isString().isLength({ min: 1 }).withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'productCode is not valid!', clientMessage: 'کد محصول معتبر نیست!' })
]
} else if (type === 'query' && input === 'code') {
return [
query('code').exists()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Code are not valid!', clientMessage: 'نام کد تخفیف مورد نیاز است!' }),
query('code').isString()
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Code are not valid!', clientMessage: 'نام کد تخفیف معتبر نیست!' }),
query('code').isLength({ min: 1 })
.withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Code are not valid!', clientMessage: 'نام کد تخفیف معتبر نیست!' })
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// service ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'query' && input === 'productId') {
return [
query('productId').exists().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ProductId is required!', clientMessage: 'شناسه محصول مورد نیاز است!' }),
query('productId').isHexadecimal().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ProductId is not valid!', clientMessage: 'شناسه محصول معتبر نیست!' }),
query('productId').isMongoId().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ProductId is not valid!', clientMessage: 'شناسه محصول معتبر نیست!' })
]
} else if (type === 'query' && input === 'categoryId') {
return [
query('categoryId').optional().isHexadecimal().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'CategoryId is not valid!', clientMessage: 'شناسه دسته بندی معتبر نیست!' }),
query('categoryId').optional().isMongoId().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'CategoryId is not valid!', clientMessage: 'شناسه دسته بندی معتبر نیست!' })
]
} else if (type === 'query' && input === 'sortBy') {
return [
query('sortBy').optional().isIn(['1', '2', '3', '4', '5']).withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'SortBy is not valid!', clientMessage: 'شناسه مرتب سازی معتبر نیست!' }),
]
} else if (type === 'query' && input === 'id') {
return [
query('id').exists().withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Transaction Id is required!', clientMessage: 'شناسه تراکنش مورد نیاز است!' }),
query('id').isHexadecimal().withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Transaction Id is not valid!', clientMessage: 'شناسه تراکنش معتبر نیست!' }),
query('id').isString().isLength({ min: 128, max: 128 }).withMessage({ clientCode: 10, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Transaction Id is not valid!', clientMessage: 'شناسه تراکنش معتبر نیست!' })
]
} else if (type === 'query' && input === 'username') {
return [
query('username').exists().withMessage({ clientCode: 70, statusCode: 422, clientMessage: 'Username is required!' }),
query('username')
.custom((v) => {
return isEmailValid(v) || isValidMobilePhone(v)
})
.withMessage({ clientCode: 71, statusCode: 422, clientMessage: 'Username is not valid!' })
]
} else if (type === 'query' && input === 'string') {
return [
query('string').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Verification Code is required!', clientMessage: 'کد راستی آزمایی مورد نیاز است!' }),
query('string').isUUID().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Verification Code is not valid!', clientMessage: 'کد راستی آزمایی معتبر نیست!' })
]
} else if (type === 'query' && input === 'page') {
return [
query('page').exists().withMessage({ clientCode: 33, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Page is required!', clientMessage: 'عدد صفحه مورد نیاز است!' }),
query('page').isInt().isLength({ min: 1, max: 2 }).withMessage({ clientCode: 34, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Page is not valid!', clientMessage: 'عدد صفحه معتبر نیست!' })
]
} else if (type === 'query' && input === 'location') {
return [
query('location').exists().withMessage({ clientCode: 35, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Location is required!', clientMessage: 'مبدا درخواست نشانه لوکیشن را ندارد!' }),
query('location').isIn(['none', 'home', 'dashboard', 'wallet', 'offers', 'all']).withMessage({ clientCode: 36, statusCode: 422, messageEnglish: 'Location is not valid!', clientMessage: 'نشانه لوکیشن معتبر نیست!' })
]
}
else if (type === 'query' && input === 'reviewId') {
return [
query('reviewId').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ReviewId Code is required!', clientMessage: 'شناسه نظر مورد نیاز است!' }),
query('reviewId').isMongoId()
.withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ReviewId Code is not valid!', clientMessage: 'شناسه نظر معتبر نیست!' })
]
} else if (type === 'query' && input === 'addressId') {
return [
query('addressId').exists().withMessage({ clientCode: 4, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'AddressId Code is required!', clientMessage: 'شناسه آدرس مورد نیاز است!' }),
query('addressId').isMongoId().withMessage({ clientCode: 5, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'AddressId Code is not valid!', clientMessage: 'شناسه آدرس معتبر نیست!' })
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// wallet ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if((type === 'query' && input === 'etheriumAccountAddress')) {
return [
query('etheriumAccountAddress')
.exists()
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'etheriumAccountAddress is not exsist!', clientMessage: ' آدرس اکانت اتریوم نباید خالی باشد!' })
.isString()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "etheriumAccountAddress should be string", clientMessage: 'آدرس اکانت اتریوم باید رشته باشد' })
.isHexadecimal()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "etheriumAccountAddress should be hexadecimal", clientMessage: 'آدرس اکانت اتریوم باید هگزادسیمال باشد' })
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// user ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if((type === 'query' && input === 'pageNumber')) {
return [
query('pageNumber')
.exists()
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'page is not exsist!', clientMessage: ' شماره صفحه نباید خالی باشد!' })
.isInt()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "page number should be number", clientMessage: 'شماره صفحه بایذ عدد صحیح باشد' })
]
} else if (type === 'query' && input === 'interval') {
return [
query('interval').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'interval is required!', clientMessage: ' بازه مورد نیاز است!' })
.isString()
.custom((i) => {
return ["h", "d","w","m","y"].includes(i)
})
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: ' interval is not valid!', clientMessage: ' بازه معتبر نیست!' })
]
}else if (type === 'query' && input === 'kind') {
return [
query('kind').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'kind is required!', clientMessage: ' نوع سفارش پذیرفته شده مورد نیاز است!' })
.isString()
.custom((k) => {
return ["1", "2"].includes(k)
})
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: ' kind is not valid!', clientMessage: ' نوع سفارش پذیرفه شده معتبر نیست!' })
]
}else if (type === 'query' && input === 'type') {
return [
query('type').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'type is required!', clientMessage: 'نوع سفارش مورد نیاز است!' })
.isString()
.custom((k) => {
return ["1", "2", "3"].includes(k)
})
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'type is not valid!', clientMessage: ' نوع سفارش معتبر نیست!' })
]
}else if (type === 'query' && input === 'status') {
return [
query('status').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'status is required!', clientMessage: ' حالت مورد نیز است.!' })
.isString()
.custom((s) => {
return ["buy", "sell"].includes(s)
})
.withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: ' status is not valid!', clientMessage: ' حالت معتبر نیست!' })
]
} else if (type === 'query' && input === 'RialId') {
return [
query('RialId').optional().isMongoId()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "rial id is not valid!", clientMessage: 'شناسه ریال معتبر نیست!' })
]
}else if (type === 'query' && input === 'pid') {
return [
query('pid').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'pid is required!', clientMessage: 'کد پیگیری سفارش مورد نیاز است!' }),
query('pid').isNumeric().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'pid is not valid!', clientMessage: 'کد پیگیری سفارش معتبر نیست!' }),
query('pid').custom((v)=>{
return v.length === 11
}).withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'pid is not valid!', clientMessage: 'کد پیگیری سفارش معتبر نیست!' })
]
}
else if (type === 'query' && input === 'Status') {
return [
query('Status').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Status is required!', clientMessage: 'کد وضعیت مورد نیاز است!' }),
query('Status').isString().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Status is not valid!', clientMessage: 'کد وضعیت معتبر نیست!' })
]
}
else if (type === 'query' && input === 'Amount') {
return [
query('Amount').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Amount is required!', clientMessage: 'مقدار خرید مورد نیاز است!' }),
query('Amount').isNumeric().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Amount is not valid!', clientMessage: 'مقدار خرید معتبر نیست!' })
]
}
else if (type === 'query' && input === 'Authority') {
return [
query('Authority').exists().withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Authority is required!', clientMessage: 'شناسه مخصوص زرین پال مورد نیاز است!' }),
query('Authority').isNumeric().withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Authority is not valid!', clientMessage: 'شناسه مخصوص زرین پال معتبر نیست!' }),
query('Authority').custom((v)=>{
return v.length === 36
}).withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'authority is not valid!', clientMessage: 'شناسه مخصوص زرین پال معتبر نیست!' })
]
}
else if (type === 'query' && input === 'questionId') {
return [
query('questionId').exists().withMessage({ clientCode: 4, statusCode: 422, messageEnglish: 'Verification Code is required!', clientMessage: 'کد راستی آزمایی مورد نیاز است!' }),
query('questionId').isMongoId().withMessage({ clientCode: 5, statusCode: 422, messageEnglish: 'Verification Code is not valid!', clientMessage: 'کد راستی آزمایی معتبر نیست!' })
]
} else if (type === 'query' && input === 'orderMongoId') {
return [
query('orderMongoId').exists()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "order id fields are not valid!", clientMessage: ' شناسه سفارش ورودی موجود نیست !' }),
query('orderMongoId').isMongoId()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "order id fields are not valid!", clientMessage: 'شناسه سفارش ورودی معتبر نیست!' }),
]
} else if (type === 'query' && input === 'orderId') {
return [
query('orderId').exists().isFloat()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not present!", clientMessage: 'شناسه ورودی سفارش موجود نیست!' }),
query('orderId')
.custom((v) => {
return ['1', '2', '3', '4'].includes(v.toString().split('.')[1])
})
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not valid!", clientMessage: 'شناسه ورودی سفارش معتبر نیست!' })
]
} else if (type === 'query' && input === 'orderIdOp') {
return [
query('orderIdOp').optional().isFloat()
.withMessage({ clientCode: 77, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not present!", clientMessage: 'شناسه ورودی سفارش موجود نیست!' }),
query('orderIdOp').optional()
.custom((v) => {
return ['1', '2', '3', '4'].includes(v.toString().split('.')[1])
})
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "orderOrderId's fields are not valid!", clientMessage: 'شناسه ورودی سفارش معتبر نیست!' })
]
} else if (type === 'query' && input === 'productId') {
return [
query('productId').exists().withMessage({ clientCode: 27, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ProductId is required!', clientMessage: 'شناسه محصول مورد نیاز است!' }),
query('productId').isHexadecimal().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ProductId is not valid!', clientMessage: 'شناسه محصول معتبر نیست!' }),
query('productId').isMongoId().withMessage({ clientCode: 28, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ProductId is not valid!', clientMessage: 'شناسه محصول معتبر نیست!' })
]
}
else if (type === 'query' && input === 'phoneNumber') {
return [
query('phoneNumber').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "phoneNumber's is not valid!", clientMessage: 'شماره موبایل معتبر نیست!' }),
query('phoneNumber')
.custom((v) => {
return v.length === 11 && (v[0] == '0' || v[0] == '۰') && (v[1] == '9' || v[1] == '۹') && (/^\d+$/.test(v) || /^\d+$/.test(numbersFormatter( v, 'en')))
})
.isLength({ min: 10, max: 11 })
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: "phoneNumber's is not valid!", clientMessage: 'شماره موبایل معتبر نیست!' })]
} else if (type === 'query' && input === 'tags') {
return [
query('tags').exists()
.withMessage({ clientCode: 78, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Tags is required!', clientMessage: 'تگ مورد نیاز است!' }),
query('tags').isString()
.withMessage({ clientCode: 79, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'Tags is not valid!', clientMessage: 'تگ معتبر نیست!' })
]
}
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// admin ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'query' && input === 'searchType') {
return [
query('searchType').exists().withMessage({ clientCode: 35, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'searchType is required!', clientMessage: 'شناسه جستجو مورد نیاز است!' }),
query('searchType').isIn(['users', 'orders', 'products']).withMessage({ clientCode: 36, statusCode: 422, messageEnglish: 'searchType is not valid!', clientMessage: 'شناسه جستجو معتبر نیست!' })
]
} else if (type === 'query' && input === 'fromDate') {
return [
query('fromDate').optional().custom((v)=>{
let date = new Date(v).getTime()
return date < new Date().getTime()
})
.withMessage({ clientCode: 36, statusCode: 422, messageEnglish: 'fromDate is not valid!', clientMessage: 'شناسه جستجو معتبر نیست!' })
]
} else if (type === 'query' && input === 'toDate') {
return [
query('toDate').optional().custom((v)=>{
let date = new Date(v).getTime()
return !isNaN(date)
})
.withMessage({ clientCode: 36, statusCode: 422, messageEnglish: 'toDate is not valid!', clientMessage: 'شناسه جستجو معتبر نیست!' })
]
} else if (type === 'query' && input === 'codeId') {
return [
query('codeId').exists()
.withMessage({ clientCode: 36, statusCode: 422, messageEnglish: 'toDate is not valid!', clientMessage: 'شناسه کد موجود نیست!' }),
query('codeId').isMongoId()
.withMessage({ clientCode: 36, statusCode: 422, messageEnglish: 'toDate is not valid!', clientMessage: 'شناسه کد معتبر نیست!' })
]
}
/// /////////////////////////////////////////
/// //////// param /////////////////////////
/// /////////////////////////////////////////
else if (type === 'param' && input === 'imageName') {
return [
param('imageName').exists().withMessage({ clientCode: 41, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'ImageName is required!', clientMessage: 'آدرس عکس مورد نیاز است!' })
]
}
/// /////////////////////////////////////////
/// //////// cookie //////////////////////////
/// /////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
/// //////// service ///////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////////////////////////////
else if (type === 'cookie' && input === 'sessionId') {
return [
cookie('sessionId').exists().withMessage({ clientCode: 41, statusCode: 422, title: 'خطا رخ داد', messageEnglish: 'sessionId is required!', clientMessage: 'مشکلی پیش آمده است!' })
]
}
}
export const validate = (req, res, next) => {
const Result = validationResult(req)
if (!Result["errors"] || Result["errors"].length === 0) {
next()
} else {
console.log(Result["errors"])
const error = new myError(
Result["errors"][0].msg.messageEnglish,
Result["errors"][0].msg.statusCode,
Result["errors"][0].msg.clientCode,
Result["errors"][0].msg.clientMessage,
Result["errors"][0].msg.title,
)
next(error)
}
}