Browse Source

fix mongoose DB private messages find method and send to front

serg1557733 1 year ago
parent
commit
298038298b
2 changed files with 9 additions and 10 deletions
  1. 8 9
      backend/app.js
  2. 1 1
      frontend/src/components/chatPage/privateChat/PrivateChat.jsx

+ 8 - 9
backend/app.js

@@ -249,8 +249,6 @@ io.on("connection", async (socket) => {
             const dbUser = await getOneUser(socket.user.userName)
             users.push({...dbUser._doc,socketId: id });
         }
-       
-    
 
 // const onUser = []
 //     const usersOnlineID = usersOnline.map(users => Object.values(users)[0])
@@ -264,7 +262,10 @@ io.on("connection", async (socket) => {
 //tasks 
 // find private chats and send to users
 
-
+// if(socket.user){
+//      const siPrivate = await PrivateMessage.find({toUser: socket.user.id})
+//      console.log(!!siPrivate)
+// }
 
     io.emit('usersOnline', users); // send array online users  
 
@@ -368,15 +369,13 @@ io.on("connection", async (socket) => {
 
 
           socket.on('privat chat', async (data) => {
+            console.log(data)
             //find user to in Db
-            const privateMessagesToUser = await PrivateMessage.find({toUser: data.user._id}).sort({ 'createDate': -1 })
-            const privateMessagesFromUser = await PrivateMessage.find({toUser: data.toUser._id}).sort({ 'createDate': -1 })
-
-            const messages = [...privateMessagesFromUser, ...privateMessagesToUser]
-//need to send all messages
+            const privateMessagesToUser = await PrivateMessage.find({toUser: {$in:[data.user._id, data.toUser._id]}, fromUser: {$in:[data.user._id, data.toUser._id]}}).sort({ 'createDate': 1 })
+          
             //find user from in db
             //compare users and if messages is - send 
-            socket.emit('send privat messages', messages)
+            socket.emit('send privat messages', privateMessagesToUser)
           })
 
     

+ 1 - 1
frontend/src/components/chatPage/privateChat/PrivateChat.jsx

@@ -39,7 +39,7 @@ socket.on("private message", (message)=> {
     console.log(message)
     newMessages.push(message)
   });  
-
+console.log(newMessages)
   
 
     const [isEditing, setIsEditing] = useState(false)