85 lines
2.7 KiB
JavaScript
85 lines
2.7 KiB
JavaScript
const { body, validationResult, param } = require('express-validator');
|
|
const { _sr } = require('../plugins/serverResponses');
|
|
const { checkValidations } = require('../plugins/controllersHelperFunctions');
|
|
const Award = require('../models/GPS.Award');
|
|
|
|
|
|
module.exports.createAward = [
|
|
[
|
|
body('score').notEmpty().isInt().withMessage(_sr.fa.required.field),
|
|
body('title').notEmpty().isString().withMessage(_sr.fa.required.field),
|
|
body('desc').notEmpty().isString().withMessage(_sr.fa.required.field),
|
|
body('expireDate').notEmpty().withMessage(_sr.fa.required.field),
|
|
],
|
|
checkValidations(validationResult),
|
|
async (req, res) => {
|
|
const { score, title, desc, expireDate } = req.body;
|
|
const fixDate = new Date(expireDate)
|
|
const award = await Award.create({ score, title, desc, expireDate:fixDate })
|
|
res.status(201).json({
|
|
msg: _sr.fa.response.success_save,
|
|
data: award
|
|
})
|
|
|
|
}
|
|
]
|
|
|
|
|
|
module.exports.findAllUser = async (req, res) => {
|
|
const toDay = new Date()
|
|
const data = await Award.find({expireDate: {$gt: toDay}})
|
|
res.status(200).json(data)
|
|
}
|
|
|
|
module.exports.findAllAdmin = async (req, res) => {
|
|
const data = await Award.find({})
|
|
res.status(200).json(data)
|
|
}
|
|
|
|
module.exports.findOne = [
|
|
[
|
|
param('id').notEmpty().isMongoId().withMessage('ایدی را وارد یا تصحیح کنید')
|
|
],
|
|
checkValidations(validationResult),
|
|
async (req, res) => {
|
|
const data = await Award.findById(req.params.id)
|
|
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('score').notEmpty().isInt().withMessage(_sr.fa.required.field),
|
|
body('title').notEmpty().isString().withMessage(_sr.fa.required.field),
|
|
body('desc').notEmpty().isString().withMessage(_sr.fa.required.field),
|
|
body('expireDate').notEmpty().withMessage(_sr.fa.required.field),
|
|
],
|
|
checkValidations(validationResult),
|
|
async (req, res) => {
|
|
const { score, title, desc, expireDate } = req.body;
|
|
const data = await Award.findById(req.params.id)
|
|
if (!data) {
|
|
res.status(404).json({ msg: _sr.fa.not_found.item_id })
|
|
} else {
|
|
data.score = score;
|
|
data.title = title;
|
|
data.desc = desc;
|
|
data.expireDate = new Date(expireDate)
|
|
data.save()
|
|
res.status(200).json({
|
|
msg: _sr.fa.response.success_save,
|
|
data
|
|
})
|
|
}
|
|
|
|
}
|
|
]
|
|
|
|
|