From 39f670164aea1f93b5404d2ce29d6f13621647b2 Mon Sep 17 00:00:00 2001 From: Mr Swift Date: Sat, 10 Aug 2024 19:32:08 +0330 Subject: [PATCH] Update GPS.AwardRequest.js --- server/controllers/GPS.AwardRequest.js | 89 +++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) diff --git a/server/controllers/GPS.AwardRequest.js b/server/controllers/GPS.AwardRequest.js index d2afb8a..2467201 100644 --- a/server/controllers/GPS.AwardRequest.js +++ b/server/controllers/GPS.AwardRequest.js @@ -1,4 +1,91 @@ const { body, param, validationResult } = require('express-validator') const { _sr } = require('../plugins/serverResponses') const { checkValidations } = require('../plugins/controllersHelperFunctions') -const User = require('../models/User') \ No newline at end of file +const User = require('../models/User') +const Award = require('../models/GPS.Award'); +const AwardRequest = require('../models/GPS.AwardRequest'); + + +module.exports.sendRequest = [ + [ + body('awardId').notEmpty().isMongoId().withMessage(_sr.fa.required.field) + ], + checkValidations(validationResult), + async(req, res)=>{ + const award = await Award.findById(req.body.awardId) + if (!award) { + res.status(404).json({ msg: _sr.fa.not_found.item_id }) + }else if(award.expireDate < new Date()){ + res.status(404).json({ msg: _sr.fa.not_found.item_id }) + }else{ + const user = await User.findById(req.user_id) + if(award.score <= user.score){ + user.score -= award.score; + user.save() + const data = await AwardRequest.create({ + awardId:req.body.awardId, + userId:req.user_id + }) + res.status(200).json({ msg:_sr.fa.response.success_save, data}) + }else{ + res.status(400).json({ msg: "امتیاز شما برای این مورد کافی نیست" }) + + } + + } + + } +] + +module.exports.findAllUser = async(req, res)=>{ + const data = await AwardRequest.find({userId:req.user_id}).populate('awardId','-created_at -updated_at') + res.status(200).json(data) +} + +module.exports.findAllAdmin = async(req, res)=>{ + const data = await AwardRequest.find().populate('awardId','-created_at -updated_at').populate('userId', 'first_name last_name shopName shopNumber shopAddress national_code mobile_number') + res.status(200).json(data) +} + +module.exports.findOne = [ + [ + param('id').notEmpty().isMongoId().withMessage('ایدی را وارد یا تصحیح کنید') + ], + checkValidations(validationResult), + async (req, res) => { + const data = await AwardRequest.findById(req.params.id).populate('awardId','-created_at -updated_at').populate('userId', 'first_name last_name shopName shopNumber shopAddress national_code mobile_number') + if (!data) { + res.status(404).json({ msg: _sr.fa.not_found.item_id }) + } else { + res.status(200).json(data) + } + + } +] + + +module.exports.update = [ + [ + param('id').notEmpty().isMongoId().withMessage('ایدی را وارد یا تصحیح کنید'), + body('status').notEmpty().isInt().withMessage(_sr.fa.required.field), + body('desc').notEmpty().isString().withMessage(_sr.fa.required.field) + ], + checkValidations(validationResult), + async (req, res) => { + const { status, desc, metaData } = req.body; + const data = await AwardRequest.findById(req.params.id) + if (!data) { + res.status(404).json({ msg: _sr.fa.not_found.item_id }) + } else { + await AwardRequest.updateOne( + {id:req.params.id}, + { + status, + desc, + metaData + } + ) + } + + } +]