Files
asan-service/server/controllers/GPS.BankAccount.js
T
2024-12-22 17:21:40 +03:30

105 lines
3.2 KiB
JavaScript

const { body, param, validationResult } = require('express-validator')
const { _sr } = require('../plugins/serverResponses')
const { checkValidations } = require('../plugins/controllersHelperFunctions')
const User = require('../models/GPS.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().isLength({ min: 24, max: 24 }).withMessage(_sr.fa.required.iban)
],
checkValidations(validationResult),
async (req, res) => {
try {
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: 'با موفقیت ثبت شد ' })
}
} catch (error) {
res.status(500).json({ msg: error })
}
}
]
module.exports.getAll = [
async (req, res) => {
const userData = await User.findById(req.user_id).select('id cardBank')
res.status(200).json(userData)
}
]
module.exports.getOne = [
async (req, res) => {
const userCart = await User.findOne({ _id: req.user_id, 'cardBank._id': req.params.id }).select('id cardBank')
console.log(userCart)
res.status(200).json({ userCart: userCart.cardBank[0] })
}
]
module.exports.updateCard = [
[
param('id').notEmpty().isMongoId().withMessage('این ایدی اشتباه می باشد'),
body('holderName').notEmpty().isString().withMessage(_sr.fa.required.name),
body('PAN').notEmpty().isInt().withMessage(_sr.fa.required.store_number),
body('IBAN').notEmpty().isLength({ min: 24, max: 24 }).withMessage(_sr.fa.required.iban)
],
checkValidations(validationResult),
async (req, res) => {
try {
const { holderName, PAN, IBAN } = req.body
const userData = await User.findOneAndUpdate(
{ _id: req.user_id, 'cardBank._id': req.params.id },
{
$set: {
'cardBank.$.holderName': holderName,
'cardBank.$.PAN': PAN,
'cardBank.$.IBAN': IBAN
}
},
{ new: true }
).select('id cardBank')
res.status(200).json(userData)
} catch (error) {
res.status(500).json({ msg: error.message })
}
}
]
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 }
}
},
{ new: true }
).select('id cardBank')
// res.status(200).json({ msg: "با موفقیت حذف شد ", data: userData })
res.status(200).json(userData)
}
]