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) => { 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.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) } ]