add user edit for admin
This commit is contained in:
@@ -361,6 +361,109 @@ module.exports.getUserForAdmin = async (req, res) => {
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.updateUserByAdmin = [
|
||||
[
|
||||
body('first_name')
|
||||
.optional()
|
||||
.notEmpty()
|
||||
.withMessage(_faSr.required.first_name)
|
||||
.bail()
|
||||
.isLength({ min: 2 })
|
||||
.withMessage(_faSr.min_char.min2)
|
||||
.bail()
|
||||
.custom((value, { req }) => {
|
||||
if (removeWhiteSpaces(value).length < 2) return Promise.reject(_faSr.min_char.min2)
|
||||
if (!isPersian(value)) return Promise.reject(new Error('لطفا با حروف فارسی تایپ کنید'))
|
||||
else return true
|
||||
}),
|
||||
body('last_name')
|
||||
.optional()
|
||||
.notEmpty()
|
||||
.withMessage(_faSr.required.last_name)
|
||||
.bail()
|
||||
.isLength({ min: 2 })
|
||||
.withMessage(_faSr.min_char.min2)
|
||||
.bail()
|
||||
.custom((value, { req }) => {
|
||||
if (removeWhiteSpaces(value).length < 2) return Promise.reject(_faSr.min_char.min2)
|
||||
if (!isPersian(value)) return Promise.reject(new Error('لطفا با حروف فارسی تایپ کنید'))
|
||||
else return true
|
||||
}),
|
||||
|
||||
body('national_code')
|
||||
.optional()
|
||||
.notEmpty()
|
||||
.withMessage(_faSr.required.national_code)
|
||||
.bail()
|
||||
.custom((value, { req }) => {
|
||||
if (checkNationalCode(value)) return true
|
||||
else return Promise.reject(_faSr.format.national_code)
|
||||
})
|
||||
.bail()
|
||||
.custom((value, { req }) => {
|
||||
const nationalCode = value.trim()
|
||||
return User.findOne({ national_code: nationalCode, _id: { $ne: req.params.id } }).then(user => {
|
||||
if (user && user.national_code === nationalCode)
|
||||
return Promise.reject(new Error('کاربر با این کد ملی از قبل وجود دارد'))
|
||||
else return true
|
||||
})
|
||||
}),
|
||||
|
||||
body('shopName').optional().notEmpty().withMessage(_faSr.required.address),
|
||||
|
||||
body('mobile_number')
|
||||
.optional()
|
||||
.notEmpty()
|
||||
.withMessage(_faSr.required.phone_number)
|
||||
.bail()
|
||||
.custom((value, { req }) => {
|
||||
const mobileNStatus = checkMobileNumber(value)
|
||||
if (!mobileNStatus) return Promise.reject(_faSr.format.phone_number)
|
||||
else return Promise.resolve()
|
||||
})
|
||||
.bail()
|
||||
.custom((value, { req }) => {
|
||||
const mobileNumber = value.trim()
|
||||
return User.findOne({ mobile_number: mobileNumber, _id: { $ne: req.params.id } }).then(user => {
|
||||
if (user && user.mobile_number === mobileNumber)
|
||||
return Promise.reject(new Error('کاربر با این شماره موبایل از قبل وجود دارد'))
|
||||
else return true
|
||||
})
|
||||
}),
|
||||
|
||||
body('cell_number').optional().notEmpty().withMessage(_faSr.required.phone_number).bail(),
|
||||
body('birthDate').optional().notEmpty().withMessage(_faSr.required.birthdate).bail(),
|
||||
body('address').optional().notEmpty().withMessage(_faSr.required.address).bail()
|
||||
],
|
||||
checkValidations(validationResult),
|
||||
async (req, res) => {
|
||||
try {
|
||||
const { first_name, last_name, national_code, mobile_number, shopName, birthDate, address, cell_number } =
|
||||
req.body
|
||||
|
||||
const data = {
|
||||
first_name: nameOptimizer(first_name),
|
||||
last_name,
|
||||
national_code: national_code.trim(),
|
||||
mobile_number: normalizeMobileNumber(mobile_number),
|
||||
shopName,
|
||||
birthDate,
|
||||
address,
|
||||
cell_number
|
||||
}
|
||||
// const existMobile = await User.findOne({ mobile_number, _id: { $ne: req.params.id } })
|
||||
// if (existMobile) return res.status(400).json({ msg: 'این شماره موبایل قبلا ثبت شده است' })
|
||||
|
||||
const updateUser = await User.findByIdAndUpdate(req.params.id, data, { new: true })
|
||||
if (!updateUser) return res.status(404).json({ msg: _sr.fa.not_found.user_id })
|
||||
return res.status(200).json({ message: _faSr.response.success_update, user: updateUser })
|
||||
} catch (error) {
|
||||
const registerFailurMsg = 'مشکلی پیش آمده، لطفا مجددا تلاش کنید'
|
||||
res500(res, registerFailurMsg)
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
module.exports.activeUser = [
|
||||
[
|
||||
param('status').notEmpty().isBoolean().withMessage('این استاتوس اشتباه است'),
|
||||
|
||||
Reference in New Issue
Block a user