82 lines
2.0 KiB
JavaScript
82 lines
2.0 KiB
JavaScript
const Broadcast = require('../models/Broadcast')
|
|
const {body, validationResult} = require('express-validator')
|
|
const dateformat = require('dateformat')
|
|
|
|
|
|
module.exports.create = [
|
|
[
|
|
body('title')
|
|
.isLength({min: 2}).withMessage('حداقل 2 کاراکتر'),
|
|
|
|
body('message')
|
|
.isLength({min: 10}).withMessage('حداقل 10 کاراکتر'),
|
|
|
|
body('locale')
|
|
.notEmpty().withMessage('زبان پیام را انتخاب کنید')
|
|
],
|
|
(req, res) => {
|
|
const errors = validationResult(req)
|
|
if (!errors.isEmpty()) return res.status(422).json({validation: errors.mapped()})
|
|
|
|
const data = {
|
|
title: req.body.title,
|
|
message: req.body.message,
|
|
admin_id: req.body.admin_id,
|
|
locale: req.body.locale,
|
|
created_at: dateformat(Date.now(), 'yyyy-mm-dd HH:MM:ss')
|
|
}
|
|
const broadcast = new Broadcast(data)
|
|
broadcast.save((err, data) => {
|
|
if (err) console.log(err)
|
|
return res.json(data)
|
|
})
|
|
}
|
|
]
|
|
|
|
|
|
module.exports.getAll = [
|
|
(req, res) => {
|
|
Broadcast.find({})
|
|
.then(messages => {
|
|
return res.json(messages)
|
|
})
|
|
.catch(err => {
|
|
console.log(err)
|
|
})
|
|
}
|
|
]
|
|
|
|
|
|
module.exports.getOne = [
|
|
(req, res) => {
|
|
Broadcast.findById(req.params.id)
|
|
.then(message => {
|
|
if (!message.read.includes(req.body.user_id)) {
|
|
message.read.push(req.body.user_id)
|
|
message.save(err => {
|
|
if (err) console.log(err)
|
|
return res.json(message)
|
|
})
|
|
} else {
|
|
return res.json(message)
|
|
}
|
|
})
|
|
.catch(err => {
|
|
console.log(err)
|
|
})
|
|
}
|
|
]
|
|
|
|
|
|
module.exports.delete = [
|
|
(req, res) => {
|
|
Broadcast.findByIdAndDelete(req.params.id)
|
|
.then(message => {
|
|
return res.json({message: 'Message deleted.'})
|
|
})
|
|
.catch(err => {
|
|
return res.status(404).json(err)
|
|
})
|
|
}
|
|
]
|