From e0cf889512eafdc04ec0541496f8babd08f17531 Mon Sep 17 00:00:00 2001
From: malyusgun <malyugind20@gmail.com>
Date: Fri, 30 Aug 2024 13:11:15 +0500
Subject: [PATCH] refactor (create route folder and remove websocket logic to
 there)

---
 index.js                | 103 ----------------------------------------
 src/routes/websocket.js |  47 ++++++++++++++++++
 2 files changed, 47 insertions(+), 103 deletions(-)
 delete mode 100644 index.js
 create mode 100644 src/routes/websocket.js

diff --git a/index.js b/index.js
deleted file mode 100644
index 3b9e5ba..0000000
--- a/index.js
+++ /dev/null
@@ -1,103 +0,0 @@
-import 'dotenv/config';
-import { WebSocketServer } from 'ws';
-import HomeController from './controllers/homeController.js';
-import path from 'node:path';
-import fs from 'node:fs';
-
-const PORT = process.env.PORT || 5000;
-const FILES_PORT = process.env.FILES_PORT || 5001;
-
-const users = new Set();
-
-const wss = new WebSocketServer(
-  {
-    port: PORT
-  },
-  () => console.log(`Started listen on port ${PORT}`)
-);
-
-const filesWss = new WebSocketServer(
-  {
-    port: FILES_PORT
-  },
-  () => console.log(`Started listen on port ${FILES_PORT}`)
-);
-
-wss.on('connection', (ws) => {
-  users.add(ws);
-  ws.id = Date.now();
-  ws.on('message', async (req) => {
-    req = JSON.parse(req);
-    // console.log('req: ', req);
-    switch (req.event) {
-      case 'getHomeBackground':
-        const homeBackground = await HomeController.getHomeBackground();
-        submitFilesToUsers(homeBackground);
-        break;
-      case 'changeHomeBackground':
-        await HomeController.changeHomeBackground(req);
-        submitToUsers('changeHomeBackground', { ...req.body });
-        break;
-      case 'removeHomeBackground':
-        await HomeController.removeHomeBackground();
-        break;
-      case 'getHomeEntities':
-        const getHomeEntitiesData = await HomeController.getEntities();
-        getHomeEntitiesData.entitiesImages.forEach((entityBuffer) => {
-          submitFilesToUsers(entityBuffer);
-        });
-        submitToUsers('getHomeEntities', getHomeEntitiesData.entities);
-        break;
-      case 'createHomeEntity':
-        const createdHomeEntity = await HomeController.createEntity(req);
-        submitToUsers('createHomeEntity', createdHomeEntity);
-        break;
-      case 'editHomeEntity': {
-        const editedHomeEntity = await HomeController.editEntity(req);
-        submitToUsers('editHomeEntity', editedHomeEntity);
-        break;
-      }
-      case 'cropImage': {
-        const editedHomeEntity = await HomeController.cropImage(req);
-        submitToUsers('editHomeEntity', editedHomeEntity);
-        break;
-      }
-      case 'deleteHomeEntity':
-        const deletedHomeEntity = await HomeController.deleteEntity(req);
-        submitToUsers('deleteHomeEntity', deletedHomeEntity);
-        break;
-      case 'changeOrderHomeEntity':
-        await HomeController.changeOrderEntity(req);
-        submitToUsers('changeOrderHomeEntity', { ...req.body });
-        break;
-    }
-  });
-});
-
-filesWss.on('connection', (ws) => {
-  users.add(ws);
-  console.log('users: ', users.size);
-  ws.on('message', async (req) => {
-    console.log('req: ', req);
-    await HomeController.createImage(req);
-    submitToUsers('createImageHomeEntity', '');
-  });
-});
-
-function submitToUsers(event, data) {
-  // console.log('data in submitToUsers:', data);
-  wss.clients.forEach((client) => {
-    client.send(
-      JSON.stringify({
-        event: event,
-        data: data
-      })
-    );
-  });
-}
-
-function submitFilesToUsers(data) {
-  filesWss.clients.forEach((client) => {
-    client.send(data);
-  });
-}
diff --git a/src/routes/websocket.js b/src/routes/websocket.js
new file mode 100644
index 0000000..532e20a
--- /dev/null
+++ b/src/routes/websocket.js
@@ -0,0 +1,47 @@
+import HomeController from '../controllers/homeController.js';
+import { submitFilesToUsers, submitToUsers } from '../index.js';
+
+export const websocketRoute = async (req) => {
+  switch (req.event) {
+    case 'getHomeBackground':
+      const homeBackground = await HomeController.getHomeBackground();
+      submitFilesToUsers(homeBackground);
+      break;
+    case 'changeHomeBackground':
+      await HomeController.changeHomeBackground(req);
+      submitToUsers('changeHomeBackground', { ...req.body });
+      break;
+    case 'removeHomeBackground':
+      await HomeController.removeHomeBackground();
+      break;
+    case 'getHomeEntities':
+      const getHomeEntitiesData = await HomeController.getEntities();
+      getHomeEntitiesData.entitiesImages.forEach((entityBuffer) => {
+        submitFilesToUsers(entityBuffer);
+      });
+      submitToUsers('getHomeEntities', getHomeEntitiesData.entities);
+      break;
+    case 'createHomeEntity':
+      const createdHomeEntity = await HomeController.createEntity(req);
+      submitToUsers('createHomeEntity', createdHomeEntity);
+      break;
+    case 'editHomeEntity': {
+      const editedHomeEntity = await HomeController.editEntity(req);
+      submitToUsers('editHomeEntity', editedHomeEntity);
+      break;
+    }
+    case 'cropImage': {
+      const editedHomeEntity = await HomeController.cropImage(req);
+      submitToUsers('editHomeEntity', editedHomeEntity);
+      break;
+    }
+    case 'deleteHomeEntity':
+      const deletedHomeEntity = await HomeController.deleteEntity(req);
+      submitToUsers('deleteHomeEntity', deletedHomeEntity);
+      break;
+    case 'changeOrderHomeEntity':
+      await HomeController.changeOrderEntity(req);
+      submitToUsers('changeOrderHomeEntity', { ...req.body });
+      break;
+  }
+};
-- 
GitLab