Files
arakrail/api/controllers/contactPageController.js
T
2021-12-31 17:01:17 +03:30

114 lines
2.9 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({message: 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({message: err})
})
}
]