Files
asan-service/server/controllers/surveyController.js
T
2024-02-24 17:38:48 +03:30

126 lines
2.8 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')
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().withMessage(_faSr.required.phone_number),
body('email').notEmpty().isEmail().withMessage(_faSr.required.email),
],
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) => {
Survey.find({type:req.query.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)
})
}
]