Commit c68ead6a authored by pdg16's avatar pdg16
Browse files

admin send message to all users

parent 970a35cc
Pipeline #20234 failed with stage
in 1 minute and 36 seconds
......@@ -32,6 +32,12 @@ const Message = require(`${libs}/models/message`);
const Email = require(`${libs}/middlewares/email`);
const passport = require('passport');
const checkAdmin = require(`${libs}/middlewares/checkAdmin`);
const User = require(`${libs}/models/user`);
/*
messageApp.get('/', (req, res, next) => {
Message.find((err, messages) => {
......@@ -65,6 +71,52 @@ messageApp.put('/:id', (req, res, next) => {
});
*/
messageApp.post('/mailUsers', passport.authenticate('bearer', { session: false }), checkAdmin(), (req, res, next) => {
req.checkBody('contents', 'O conteúdo da mensagem é um campo obrigatório').notEmpty();
req.getValidationResult().then(function(result) {
if (!result.isEmpty()) {
res.status(400).send({errors: result.array()});
return;
}
let message = new Message({
author: {
name: req.user.name,
email: req.user.email
},
contents: req.body.contents,
origin: req.user.origin
});
User.find({origin: req.user.origin}, 'email', (err, user_emails) => {
if(err) {
log.error(err);
return next(err);
}
let text = "Administrador do " + req.user.origin + " enviou uma mensagem:\"" +
message.contents + "\"";
let mailOptions = {
"from": "\"Laboratório de Dados Educacionais\" <dadoseducacionais@c3sl.ufpr.br>",
"to": user_emails,
"subject": "Você recebeu uma mensagem do "+req.user.origin,
text
};
Email(mailOptions, (err)=> {
if (err)
log.error(err);
});
message.save((err) => {
if(err) {
res.status(500).json({error: 'Erro do servidor', text: 'O servidor encontrou um erro ao processar a requisição', err});
}
res.json(message);
});
});
});
});
messageApp.post('/', (req, res, next) => {
req.checkBody('name', 'Nome é um campo obrigatório').notEmpty();
req.checkBody('email', 'Email é um campo obrigatório').notEmpty();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment