Files
asan-service/server/controllers/surveyController.js
T
Swift 34fbdad4bc fix
2024-02-26 18:01:31 +03:30

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)
})
}
]