Browse Source

add friends functions and emits on server

serg1557733 1 year ago
parent
commit
a567ed0d96
2 changed files with 23 additions and 27 deletions
  1. 23 26
      backend/app.js
  2. 0 1
      frontend/src/components/chatPage/generalChat/AddToFriends.jsx

+ 23 - 26
backend/app.js

@@ -411,38 +411,30 @@ socket.emit('my chats', privateChats)
 
           });
 
-          socket.on('addToFriends', async (data) => {
-
-//need to fix finding created user in db and delet if its true
-
-
-            // const isFriend  = await User.find({userName: dbUser.userName}, {'friends': data.user._id})
-            // console.log('isfriend', isFriend)
-            if(dbUser.friends){
-                await User.findOneAndUpdate({userName: dbUser.userName},{ $set: {'friends':  []}},   {
-                    new: true
-                  })
-               console.log('adddedd')
-               
-            }
-            
-            // if(isFriend){
+//add and remove friends functions
 
-            // }
-            await dbUser.friends.push(data.user._id)
+          socket.on('addToFriends', async (data) => {
+            const isFriend  =  await User.find({userName:userName,friends: {'_id':data.user._id}})
+            if(!!isFriend.length){
+                    await User.findOneAndUpdate({userName: userName},{$set: {'friends':  []}}, {new: true })
+                } 
+            await dbUser.friends.push({'_id':data.user._id})
             await dbUser.save()
-
-
+            await User.findOne({userName}).populate({path:'friends'}).then(res => socket.emit('friends',res.friends) )
             
-            
-            const newFriends = await dbUser.populate({path:'friends'})
-
-            socket.emit('friends',newFriends.friends )
-        
         }) 
           
-        socket.on('removeFromFriends', (user) => console.log('rem')) 
+        socket.on('removeFromFriends', async(user) => {
+            const res = await User.updateOne({ userName}, {
+                $pullAll: {
+                    friends: [{_id: user.user._id}],
+                },
+            });
+         await User.findOne({userName}).populate({path:'friends'}).then(res => socket.emit('friends',res.friends)) 
 
+    })
+    
+//admin functions 
 
         socket.on("banUser",async (data) => {
             if(!socket.user.isAdmin){
@@ -463,11 +455,16 @@ socket.emit('my chats', privateChats)
             // }
            });
 
+
+
+
            socket.on('userWriting', async () => {
                 let isTyping = true;
                 io.emit('writing', {userName, isTyping})
            })
 
+// edit and remove messages
+
            socket.on('editmessage', async (data) => {
             console.log(data.messageNewText)
             const user = jwt.verify(data.token, TOKEN_KEY)

+ 0 - 1
frontend/src/components/chatPage/generalChat/AddToFriends.jsx

@@ -12,7 +12,6 @@ export const AddToFriends = (user) => {
 
     socket.on('friends', data =>  console.log(data))
    
-
     return (
         <div onClick={() => {
                             setIsFreind(!isFriend)