Open mannaayan opened 4 months ago
Error in send Message Route TypeError: getReceiverSocketId is not a function
const Conversation = require("../models/conversation.models"); const Message = require("../models/message.models"); const { io } = require("../app"); const getReceiverSocketId = require("../app").getReceiverSocketId;
const sendMessage = async(req,res)=>{ // console.log("messages",req.params.id);
try { const {message} = req.body; const receiverId = req.params.id; const senderId = req.user._id; console.log(`Sender: ${senderId}, Receiver: ${receiverId},, Message" ${message}`); let conversation = await Conversation.findOne({ participants: { $all : [senderId, receiverId]} }) //send 1st time if(!conversation){ conversation = await Conversation.create({ participants: [senderId,receiverId], }) } const newMessage = new Message({ senderId, receiverId, message }) if(newMessage){ conversation.messages.push(newMessage._id); } // await conversation.save(); // await newMessage.save(); //optimize the upper 2 line await Promise.all([conversation.save(), newMessage.save()])//this will run in parallel //Socket IO const receiverSocketId = getReceiverSocketId(receiverId); if (receiverSocketId) { // io.to(<socket_id>).emit() used to send events to specific client io.to(receiverSocketId).emit("newMessage", newMessage); } // console.log("newMessage", newMessage); res.status(201).json(newMessage) } catch (error) { console.log("Error in send Message Route", error); res.status(500).send({ success:false, message: error.message }) }
}
const getMessage = async(req,res)=>{ try { const userToChatId = req.params.id; const senderId = req.user._id;
const conversation = await Conversation .findOne({ participants:{$all : [senderId,userToChatId]}, }).populate("messages")//not ref but actual message if(!conversation){ return res.status(200).send({ success:true, message: [], }) } const messages = conversation.messages res.status(200).send({ success:true, message: messages }) } catch (error) { console.log("Error in Get Message Route", error); res.status(500).send({ success:false, message: error.message }) }
module.exports = {sendMessage,getMessage}
Error in send Message Route TypeError: getReceiverSocketId is not a function
const Conversation = require("../models/conversation.models"); const Message = require("../models/message.models"); const { io } = require("../app"); const getReceiverSocketId = require("../app").getReceiverSocketId;
const sendMessage = async(req,res)=>{ // console.log("messages",req.params.id);
}
const getMessage = async(req,res)=>{ try { const userToChatId = req.params.id; const senderId = req.user._id;
}
module.exports = {sendMessage,getMessage}