Browse Source

refactor: fix bugs and simple code

Sergey 3 years ago
parent
commit
b84265c756

+ 38 - 23
backend/app.js

@@ -106,7 +106,6 @@ io.use( async (socket, next) => {
         return;
     }
 
-console.log('here', token)
     const usersOnline = [];
     sockets.map((sock) => {
         usersOnline.push(sock.user);
@@ -115,11 +114,9 @@ console.log('here', token)
    
     try {
         const user = jwt.verify(token, TOKEN_KEY);
-        userName = user.userName;
+        const userName = user.userName;
         const dbUser = await getOneUser(userName);
 
- console.log('here', userName)
-
         if(dbUser.isBanned){
             socket.disconnect();
             return;
@@ -159,21 +156,29 @@ io.on("connection", async (socket) => {
         const post = await Message.findOne({userName}).sort({ 'createDate': -1 })
         const oneUser = await getOneUser(userName);
       
-        if(!oneUser.isMutted && post){
-            if(((Date.now() - Date.parse(post.createDate)) > 150)){//change later 15000  
-                const message = new Message({
-                        text: data.message,
-                        userName: userName,
-                        createDate: Date.now()
-                    });
-                    try {
-                        await message.save(); 
-                    } catch (error) {
-                        console.log('Message save to db error', error);   
-                    }
-                    io.emit('message', message);
+        if(oneUser.isMutted || !post){
+            return;
+        }
+
+        if(((Date.now() - Date.parse(post.createDate)) < 150)){
+            return;
+        }
+
+        // if(!oneUser.isMutted && post){
+        // if(((Date.now() - Date.parse(post.createDate)) > 150)){//change later 15000  
+        const message = new Message({
+                text: data.message,
+                userName: userName,
+                createDate: Date.now()
+            });
+            try {
+                await message.save(); 
+            } catch (error) {
+                console.log('Message save to db error', error);   
             }
-        } 
+            io.emit('message', message);
+        // }
+        // } 
     });
     
     try {
@@ -185,29 +190,39 @@ io.on("connection", async (socket) => {
             console.log(`user :${socket.user.userName} , connected to socket`); 
         
         socket.on("muteUser",async (data) => {
-                if(socket.user.isAdmin){
+            if(!socket.user.isAdmin){
+                return;
+            }
+                // if(socket.user.isAdmin){
                     const {user, prevStatus} = data;
                     const sockets = await io.fetchSockets();
                     const mute = await User.updateOne({userName : user}, {$set: {isMutted :!prevStatus}});
                     getAllDbUsers(socket);
                     const exist = sockets.find( current => current.user.userName == user)
                     const dbUser = await getOneUser(user);
+                    
                     if(exist){
-                        exist.emit('connected', dbUser)   
+                        exist.emit('connected', dbUser);   
                     } 
-                }
+                // }
            });
     
         socket.on("banUser",async (data) => {
-            if(socket.user.isAdmin) { 
+            if(!socket.user.isAdmin){
+                return;
+            }
+
+            // if(socket.user.isAdmin) { 
                 const {user, prevStatus} = data;
                 const sockets = await io.fetchSockets();
                 const ban = await User.updateOne({userName : user}, {$set: {isBanned:!prevStatus}});
                 getAllDbUsers(socket)
                 const exist = sockets.find( current => current.user.userName == user)
+                
                 if(exist){
                     exist.disconnect();  
-                }}
+                }
+            // }
            });
     } catch (e) {
         console.log(e);

+ 4 - 2
frontend/src/App.js

@@ -9,10 +9,11 @@ function App() {
     const [token, setToken] = useState(localStorage.getItem('token'))
 
     useEffect(() => {
-    if(token) {
-          localStorage.setItem('token', token);  
+        if(token) {
+            localStorage.setItem('token', token);  
         } 
     }, [token])
+
     if (token) {
         return <ChatPage 
             token={token} 
@@ -21,6 +22,7 @@ function App() {
                         setToken('')
                     }}/> 
         }
+
     return <LoginForm onSubmit={setToken}/>; // delete setTokek after unmounted
 }
 

+ 5 - 0
frontend/src/components/chatPage/ChatPage.js

@@ -72,6 +72,11 @@ export const ChatPage = ({ onExit, token }) => {
             }); 
              
         }
+
+        // return () => {
+        //     socket.off('connected');
+        //     socket.off('allmessages');
+        // }
     }, [socket])
 
     useEffect(() => {

+ 0 - 2
frontend/src/components/chatPage/messageForm/MessageForm.js

@@ -3,8 +3,6 @@ import Button from '@mui/material/Button';
 import { useState } from 'react';
 import Box from '@mui/material/Box';
 
-
-
 export const MessageForm = ({sendMessage, data}) => {
 
     const [message, setMessage] = useState({message: ''});

+ 3 - 1
frontend/src/components/loginForm/LoginForm.js

@@ -19,16 +19,18 @@ export const LoginForm = ({ onSubmit}) => {
 
     const handleSubmit = async (e) => {
         e.preventDefault();
+
         if(isValidPayload({...userData}) && isValidUserName({...userData})){
             const data = await sendForm(POST_URL, userData);
             const token = data.token;
+
             if(token){
                 onSubmit(token);     
             }
+
             setTextModal(data.message)
             setDisplay('block')
             setUserdata({userName:'', password: ''});
-            
         } else {
             setTextModal('too short or using special symbols')
             setDisplay('block')