Loading .env 0 → 100644 +6 −0 Original line number Diff line number Diff line PORT=5000 DB_NAME=Shelf_note DB_USER=postgres DB_PASSWORD=xoxo2002! DB_HOST=localhost DB_PORT=5432 No newline at end of file .gitignore 0 → 100644 +30 −0 Original line number Diff line number Diff line # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log* node_modules .DS_Store dist dist-ssr coverage *.local /cypress/videos/ /cypress/screenshots/ # Editor directories and files .vscode/* !.vscode/extensions.json .idea *.suo *.ntvs* *.njsproj *.sln *.sw? *.tsbuildinfo controllers/homeController.js 0 → 100644 +42 −0 Original line number Diff line number Diff line import HomeService from "../services/homeService.js"; class HomeController { async getEntities() { try { return await HomeService.getEntities(); } catch (error) { console.log(error); return error; } } async createEntity(req) { try { return await HomeService.createEntity(req.body); } catch (error) { console.log(error); } } async editEntity(req) { try { return await HomeService.editEntity(req.body); } catch (error) { console.log(error); } } async deleteEntity(req) { try { return await HomeService.deleteEntity(req.body); } catch (error) { console.log(error); } } async changeOrderEntity(req) { try { return await HomeService.changeOrderEntity(req.body); } catch (error) { console.log(error); } } } export default new HomeController; No newline at end of file db.js 0 → 100644 +12 −0 Original line number Diff line number Diff line import { Sequelize } from 'sequelize'; export const sequelize = new Sequelize( process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASSWORD, { dialect: 'postgres', host: process.env.DB_HOST, port: process.env.DB_PORT, } ) No newline at end of file index.js 0 → 100644 +76 −0 Original line number Diff line number Diff line import 'dotenv/config'; import {WebSocketServer} from "ws"; import HomeController from "./controllers/homeController.js"; import {sequelize} from "./db.js"; import { Home_entity, User } from "./models/index.js"; const PORT = process.env.PORT || 5000; const users = new Set(); const wss = new WebSocketServer({ port: PORT }, () => console.log(`Started listen on port ${PORT}`)) wss.on('connection', (ws) => { users.add(ws); ws.id = Date.now(); ws.on('message', async (req) => { req = JSON.parse(req); switch (req.event) { case 'getHomeEntities': const getHomeEntitiesData = await HomeController.getEntities(); wss.clients.forEach((client) => { client.send(JSON.stringify({event: 'getHomeEntities', data: getHomeEntitiesData})) }); break; case 'createHomeEntity': const createdHomeEntity = await HomeController.createEntity(req); wss.clients.forEach((client) => { client.send(JSON.stringify({ event: 'createHomeEntity', data: createdHomeEntity })); }); break; case 'editHomeEntity': const editedHomeEntity = await HomeController.editEntity(req); wss.clients.forEach((client) => { client.send(JSON.stringify({ event: 'editHomeEntity', data: editedHomeEntity })); }); break; case 'deleteHomeEntity': const deletedHomeEntity = await HomeController.deleteEntity(req); wss.clients.forEach((client) => { client.send(JSON.stringify({ event: 'deleteHomeEntity', data: deletedHomeEntity })); }); break; case 'changeOrderHomeEntity': await HomeController.changeOrderEntity(req); wss.clients.forEach((client) => { client.send(JSON.stringify({ event: 'changeOrderHomeEntity', data: {...req.body} })); }); break; } }) }) const start = async () => { try { await sequelize.authenticate(); await sequelize.sync(); } catch (error) { console.log(error) } } await start(); No newline at end of file Loading
.env 0 → 100644 +6 −0 Original line number Diff line number Diff line PORT=5000 DB_NAME=Shelf_note DB_USER=postgres DB_PASSWORD=xoxo2002! DB_HOST=localhost DB_PORT=5432 No newline at end of file
.gitignore 0 → 100644 +30 −0 Original line number Diff line number Diff line # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* lerna-debug.log* node_modules .DS_Store dist dist-ssr coverage *.local /cypress/videos/ /cypress/screenshots/ # Editor directories and files .vscode/* !.vscode/extensions.json .idea *.suo *.ntvs* *.njsproj *.sln *.sw? *.tsbuildinfo
controllers/homeController.js 0 → 100644 +42 −0 Original line number Diff line number Diff line import HomeService from "../services/homeService.js"; class HomeController { async getEntities() { try { return await HomeService.getEntities(); } catch (error) { console.log(error); return error; } } async createEntity(req) { try { return await HomeService.createEntity(req.body); } catch (error) { console.log(error); } } async editEntity(req) { try { return await HomeService.editEntity(req.body); } catch (error) { console.log(error); } } async deleteEntity(req) { try { return await HomeService.deleteEntity(req.body); } catch (error) { console.log(error); } } async changeOrderEntity(req) { try { return await HomeService.changeOrderEntity(req.body); } catch (error) { console.log(error); } } } export default new HomeController; No newline at end of file
db.js 0 → 100644 +12 −0 Original line number Diff line number Diff line import { Sequelize } from 'sequelize'; export const sequelize = new Sequelize( process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASSWORD, { dialect: 'postgres', host: process.env.DB_HOST, port: process.env.DB_PORT, } ) No newline at end of file
index.js 0 → 100644 +76 −0 Original line number Diff line number Diff line import 'dotenv/config'; import {WebSocketServer} from "ws"; import HomeController from "./controllers/homeController.js"; import {sequelize} from "./db.js"; import { Home_entity, User } from "./models/index.js"; const PORT = process.env.PORT || 5000; const users = new Set(); const wss = new WebSocketServer({ port: PORT }, () => console.log(`Started listen on port ${PORT}`)) wss.on('connection', (ws) => { users.add(ws); ws.id = Date.now(); ws.on('message', async (req) => { req = JSON.parse(req); switch (req.event) { case 'getHomeEntities': const getHomeEntitiesData = await HomeController.getEntities(); wss.clients.forEach((client) => { client.send(JSON.stringify({event: 'getHomeEntities', data: getHomeEntitiesData})) }); break; case 'createHomeEntity': const createdHomeEntity = await HomeController.createEntity(req); wss.clients.forEach((client) => { client.send(JSON.stringify({ event: 'createHomeEntity', data: createdHomeEntity })); }); break; case 'editHomeEntity': const editedHomeEntity = await HomeController.editEntity(req); wss.clients.forEach((client) => { client.send(JSON.stringify({ event: 'editHomeEntity', data: editedHomeEntity })); }); break; case 'deleteHomeEntity': const deletedHomeEntity = await HomeController.deleteEntity(req); wss.clients.forEach((client) => { client.send(JSON.stringify({ event: 'deleteHomeEntity', data: deletedHomeEntity })); }); break; case 'changeOrderHomeEntity': await HomeController.changeOrderEntity(req); wss.clients.forEach((client) => { client.send(JSON.stringify({ event: 'changeOrderHomeEntity', data: {...req.body} })); }); break; } }) }) const start = async () => { try { await sequelize.authenticate(); await sequelize.sync(); } catch (error) { console.log(error) } } await start(); No newline at end of file