114 lines
3.1 KiB
JavaScript
114 lines
3.1 KiB
JavaScript
const ContactPageMessage = require('../models/ContactPageMessage')
|
|
const {body, validationResult} = require('express-validator')
|
|
const dateformat = require('dateformat')
|
|
const v_m = require('../validation_messages')
|
|
|
|
module.exports.create = [
|
|
[
|
|
body('first_name')
|
|
.notEmpty()
|
|
.withMessage((value, {req}) => {
|
|
return v_m[req.body.locale].required.first_name
|
|
})
|
|
.bail()
|
|
.isLength({min: 2})
|
|
.withMessage((value, {req}) => {
|
|
return v_m[req.body.locale].min_char.min2
|
|
}),
|
|
|
|
body('last_name')
|
|
.notEmpty()
|
|
.withMessage((value, {req}) => {
|
|
return v_m[req.body.locale].required.last_name
|
|
})
|
|
.bail()
|
|
.isLength({min: 2})
|
|
.withMessage((value, {req}) => {
|
|
return v_m[req.body.locale].min_char.min2
|
|
}),
|
|
|
|
body('phone_number')
|
|
.notEmpty()
|
|
.withMessage((value, {req}) => {
|
|
return v_m[req.body.locale].required.phone_number
|
|
})
|
|
.bail()
|
|
.isNumeric()
|
|
.withMessage((value, {req}) => {
|
|
return v_m[req.body.locale].format.phone_number
|
|
}),
|
|
|
|
body('email')
|
|
.notEmpty()
|
|
.withMessage((value, {req}) => {
|
|
return v_m[req.body.locale].required.email
|
|
})
|
|
.bail()
|
|
.isEmail()
|
|
.withMessage((value, {req}) => {
|
|
return v_m[req.body.locale].format.email
|
|
}),
|
|
|
|
body('reason')
|
|
.custom((value, {req}) => {
|
|
if (!value) return Promise.reject(v_m[req.body.locale].required.reason)
|
|
else return true
|
|
}),
|
|
|
|
body('message')
|
|
.isLength({min: 50})
|
|
.withMessage((value, {req}) => {
|
|
return v_m[req.body.locale].min_char.min50
|
|
})
|
|
|
|
],
|
|
(req, res) => {
|
|
const errors = validationResult(req)
|
|
if (!errors.isEmpty()) return res.status(422).json({validation: errors.mapped()})
|
|
|
|
const data = {
|
|
first_name: req.body.first_name,
|
|
last_name: req.body.last_name,
|
|
phone_number: req.body.phone_number,
|
|
email: req.body.email,
|
|
message: req.body.message,
|
|
reason: req.body.reason,
|
|
created_at: dateformat(Date.now(), 'yyyy-mm-dd HH:MM:ss')
|
|
}
|
|
const message = new ContactPageMessage(data)
|
|
message.save((err, message) => {
|
|
if (err) console.log(err)
|
|
return res.json({message: v_m[req.body.locale].response.success_save})
|
|
})
|
|
}
|
|
]
|
|
|
|
|
|
module.exports.getAll = [
|
|
(req, res) => {
|
|
ContactPageMessage.find({}).select('-message')
|
|
.then(messages => {
|
|
return res.json(messages)
|
|
})
|
|
.catch(err => {
|
|
console.log(err)
|
|
return res.status(500).json(err)
|
|
})
|
|
}
|
|
]
|
|
|
|
|
|
module.exports.getOne = [
|
|
(req, res) => {
|
|
ContactPageMessage.findById(req.params.id)
|
|
.then(message => {
|
|
message.read = true
|
|
message.save()
|
|
return res.json(message)
|
|
})
|
|
.catch(err => {
|
|
return res.status(404).json(err)
|
|
})
|
|
}
|
|
]
|