149 lines
3.4 KiB
JavaScript
149 lines
3.4 KiB
JavaScript
const { body, validationResult } = require('express-validator')
|
|
const { _sr } = require('../plugins/serverResponses')
|
|
const { res404, res500 } = require('../plugins/controllersHelperFunctions')
|
|
const _faSr = _sr.fa
|
|
const { checkValidations } = require('../plugins/controllersHelperFunctions')
|
|
const Survey = require('../models/Survey')
|
|
const Transaction = require('../models/Transaction')
|
|
|
|
module.exports.create = [
|
|
(req, res) => {
|
|
const {
|
|
purchasedProduct,
|
|
guaranteeWorkFlow,
|
|
employeeResponsibility,
|
|
serviceQuality,
|
|
serviceTime,
|
|
repairQuality,
|
|
coast,
|
|
description,
|
|
code
|
|
} = req.body
|
|
|
|
const data = {
|
|
purchasedProduct,
|
|
guaranteeWorkFlow,
|
|
employeeResponsibility,
|
|
serviceQuality,
|
|
serviceTime,
|
|
repairQuality,
|
|
coast,
|
|
description,
|
|
code,
|
|
type:0,
|
|
user: req.user_id
|
|
}
|
|
|
|
const survey = new Survey(data)
|
|
survey.save(err => {
|
|
if (err) return res500(res, err)
|
|
return res.json({ message: _faSr.response.success_save })
|
|
})
|
|
}
|
|
]
|
|
|
|
module.exports.createPublic = [
|
|
[
|
|
body('fullName').notEmpty().withMessage(_faSr.required.name),
|
|
body('national').notEmpty().withMessage(_faSr.required.national_code),
|
|
body('phoneNumber').notEmpty().isMobilePhone('ir-IR').withMessage(_faSr.required.phone_number),
|
|
body('email').notEmpty().isEmail().withMessage(_faSr.required.email),
|
|
body('code').custom(async(value, { req }) => {
|
|
if(value){
|
|
const check = await Transaction.findOne({ItemReceptionTransDate:value})
|
|
if(!check){
|
|
return Promise.reject(new Error("کد پذیرش معتبر نیست"))
|
|
}else{
|
|
return Promise.resolve()
|
|
}
|
|
}else{
|
|
return Promise.resolve()
|
|
}
|
|
}),
|
|
],
|
|
checkValidations(validationResult),
|
|
(req, res) => {
|
|
const {
|
|
purchasedProduct,
|
|
guaranteeWorkFlow,
|
|
employeeResponsibility,
|
|
serviceQuality,
|
|
serviceTime,
|
|
repairQuality,
|
|
coast,
|
|
description,
|
|
code,
|
|
fullName,
|
|
national,
|
|
phoneNumber ,
|
|
email
|
|
} = req.body
|
|
|
|
const data = {
|
|
fullName,
|
|
national,
|
|
phoneNumber ,
|
|
email,
|
|
purchasedProduct,
|
|
guaranteeWorkFlow,
|
|
employeeResponsibility,
|
|
serviceQuality,
|
|
serviceTime,
|
|
repairQuality,
|
|
coast,
|
|
description,
|
|
code,
|
|
type:1
|
|
}
|
|
|
|
const survey = new Survey(data)
|
|
|
|
survey.save(err => {
|
|
if (err) return res500(res, err)
|
|
return res.json({ message: _faSr.response.success_save })
|
|
})
|
|
|
|
}
|
|
]
|
|
|
|
module.exports.getAllForUser = [
|
|
(req, res) => {
|
|
Survey.find({ user: req.user_id }, (err, data) => {
|
|
if (err) return res500(res, err)
|
|
return res.json(data)
|
|
})
|
|
}
|
|
]
|
|
|
|
module.exports.getAllForAdmin = [
|
|
(req, res) => {
|
|
|
|
// eslint-disable-next-line eqeqeq
|
|
if(req.query.type == 1){
|
|
Survey.find({type: 1 })
|
|
.exec((err, data) => {
|
|
if (err) return res500(res, err)
|
|
return res.json(data)
|
|
})
|
|
}else{
|
|
Survey.find({type: 0 })
|
|
.populate('user', 'first_name last_name')
|
|
.exec((err, data) => {
|
|
if (err) return res500(res, err)
|
|
return res.json(data)
|
|
})
|
|
}
|
|
}
|
|
]
|
|
|
|
module.exports.getOneForAdmin = [
|
|
(req, res) => {
|
|
Survey.findById(req.params.id)
|
|
.populate('user', 'first_name last_name')
|
|
.exec((err, data) => {
|
|
if (err) return res404(res, err)
|
|
return res.json(data)
|
|
})
|
|
}
|
|
]
|