send email when message is sent
This commit is contained in:
@@ -4,6 +4,7 @@ const { authenticateToken } = require('../middleware/auth');
|
||||
const logger = require('../utils/logger');
|
||||
const { emitNewMessage, emitMessageRead } = require('../sockets/messageSocket');
|
||||
const { Op } = require('sequelize');
|
||||
const emailService = require('../services/emailService');
|
||||
const router = express.Router();
|
||||
|
||||
// Get all messages for the current user (inbox)
|
||||
@@ -278,6 +279,23 @@ router.post('/', authenticateToken, async (req, res) => {
|
||||
emitNewMessage(io, receiverId, messageWithSender.toJSON());
|
||||
}
|
||||
|
||||
// Send email notification to receiver
|
||||
try {
|
||||
const sender = await User.findByPk(req.user.id, {
|
||||
attributes: ['id', 'firstName', 'lastName', 'email']
|
||||
});
|
||||
|
||||
await emailService.sendNewMessageNotification(receiver, sender, message);
|
||||
} catch (emailError) {
|
||||
// Log email error but don't block the message send
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Failed to send message notification email", {
|
||||
error: emailError.message,
|
||||
messageId: message.id,
|
||||
receiverId: receiverId
|
||||
});
|
||||
}
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Message sent", {
|
||||
senderId: req.user.id,
|
||||
|
||||
Reference in New Issue
Block a user