Files
arakrail/api/controllers/broadcastController.js
T
2020-11-23 19:39:26 +03:30

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