64 lines
2.0 KiB
JavaScript
64 lines
2.0 KiB
JavaScript
const { body, param, validationResult } = require('express-validator')
|
|
const { _sr } = require('../plugins/serverResponses')
|
|
const { checkValidations } = require('../plugins/controllersHelperFunctions')
|
|
const User = require('../models/User')
|
|
|
|
module.exports.addCard = [
|
|
[
|
|
body('holderName').notEmpty().isString().withMessage(_sr.fa.required.name),
|
|
body('PAN').notEmpty().isInt().withMessage(_sr.fa.required.store_number),
|
|
body('IBAN').notEmpty().isIBAN().withMessage(_sr.fa.required.address)
|
|
],
|
|
checkValidations(validationResult),
|
|
async (req, res) => {
|
|
const { holderName, PAN, IBAN } = req.body;
|
|
const userData = await User.findById(req.user_id).select('id cardBank')
|
|
if (userData?.cardBank && Array.isArray(userData?.cardBank)) {
|
|
userData.cardBank.push({
|
|
holderName,
|
|
PAN,
|
|
IBAN
|
|
})
|
|
userData.save()
|
|
res.status(201).json({ msg: 'با موفقیت ثبت شد ' })
|
|
} else {
|
|
userData.cardBank = [{
|
|
holderName,
|
|
PAN,
|
|
IBAN
|
|
}];
|
|
userData.save()
|
|
res.status(201).json({ msg: 'با موفقیت ثبت شد ' })
|
|
}
|
|
}
|
|
]
|
|
|
|
|
|
module.exports.getAll = [
|
|
async (req, res) => {
|
|
const userData = await User.findById(req.user_id).select('id cardBank')
|
|
res.status(200).json(userData)
|
|
}
|
|
]
|
|
|
|
|
|
module.exports.deleteCard = [
|
|
[
|
|
param('id').notEmpty().isMongoId().withMessage('این ایدی اشتباه می باشد')
|
|
],
|
|
checkValidations(validationResult),
|
|
async (req, res) => {
|
|
const userData = await User.findOneAndUpdate(
|
|
{
|
|
_id: req.user_id,
|
|
"cardBank._id": req.params.id
|
|
},
|
|
{
|
|
$pull: {
|
|
cardBank: { _id: req.params.id }
|
|
}
|
|
}
|
|
).select('id cardBank')
|
|
res.status(200).json({ msg: "با موفقیت حذف شد ", data: userData })
|
|
}
|
|
] |