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