var express = require('express'); var router = new express.Router(); var mail = require('../mail.js'); var database = require('../database.js'); // Single user notification router.post('/:recipient/noticeUserSend', function(request, response) { var params = { recipient: request.params.recipient, sender: request.body.sender, category: request.body.category, message: request.body.message }; if (params.sender == params.recipient) return; let query = `SELECT COUNT(*) isEnabled FROM noticeSubscription s JOIN noticeCategory c ON c.id = s.noticeCategoryFk AND c.isEnabled WHERE c.keyName = ? AND s.userFk = ?`; database.pool.query(query, [params.category, params.recipient, params.sender], (error, result) => { mail.sendWithTemplate('notice', params, result => { return response.json(result); }); }); }); // Send notification to all user subscribed to category router.post('/:category/noticeCategorySend', function(request, response) { var params = { sender: request.body.sender, category: request.params.category, message: request.body.message }; let query = `SELECT s.userFk id FROM noticeSubscription s JOIN noticeCategory c ON c.id = s.noticeCategoryFk AND c.isEnabled WHERE c.keyName = ? AND s.userFk != ?`; database.pool.query(query, [params.category, params.sender], (error, result) => { result.forEach(function(user) { params.recipient = user.id; mail.sendWithTemplate('notice', params, result => { return response.json(result); }); }, this); }); }); // Send system notification router.post('/:recipient/noticeSystemSend', function(request, response) { var params = { recipient: request.params.recipient, sender: 50069, // verdnatura category: request.body.category, message: request.body.message }; mail.sendWithTemplate('notice', params, result => { return response.json(result); }); }); module.exports = router;