Loading .env +2 −2 Original line number Diff line number Diff line Loading @@ -7,8 +7,8 @@ DB_HOST=localhost DB_PORT=5432 # prisma db push # при запуске с родного ноутбука # DATABASE_URL="postgresql://postgres:xoxo2002!@localhost:5432/Shelf_note" DATABASE_URL="postgresql://postgres:xoxo2002!@localhost:5432/Shelf_note" # при запуске с рабочего ноутбука DATABASE_URL="postgresql://postgres.wrwwvdgppriodcdoyohp:Xoxo2002!qwe@aws-0-eu-central-1.pooler.supabase.com:6543/postgres?pgbouncer=true" # DATABASE_URL="postgresql://postgres.wrwwvdgppriodcdoyohp:Xoxo2002!qwe@aws-0-eu-central-1.pooler.supabase.com:6543/postgres?pgbouncer=true" DIRECT_URL="postgresql://postgres.wrwwvdgppriodcdoyohp:Xoxo2002!qwe@aws-0-eu-central-1.pooler.supabase.com:5432/postgres" .gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ yarn-error.log* pnpm-debug.log* lerna-debug.log* public node_modules .DS_Store dist Loading controllers/homeController.js +26 −12 Original line number Diff line number Diff line import HomeService from '../services/homeService.js'; class HomeController { async getEntities() { async getHomeBackground() { try { return await HomeService.getEntities(); return await HomeService.getHomeBackground(); } catch (error) { console.log(error); return error; } } async getHomeBackgroundUrl() { async changeHomeBackground(req) { try { return await HomeService.changeHomeBackground(req.body); } catch (error) { console.log(error); } } async removeHomeBackground() { try { await HomeService.removeHomeBackground(); } catch (error) { console.log(error); } } async getEntities() { try { return await HomeService.getHomeBackgroundUrl(); return await HomeService.getEntities(); } catch (error) { console.log(error); return error; Loading @@ -24,9 +38,9 @@ class HomeController { console.log(error); } } async createImageEntity(req) { async createImage(req) { try { return await HomeService.createImageEntity(req); return await HomeService.createImage(req); } catch (error) { console.log(error); } Loading @@ -38,23 +52,23 @@ class HomeController { console.log(error); } } async deleteEntity(req) { async cropImage(req) { try { return await HomeService.deleteEntity(req.body); return await HomeService.cropImage(req.body); } catch (error) { console.log(error); } } async changeOrderEntity(req) { async deleteEntity(req) { try { return await HomeService.changeOrderEntity(req.body); return await HomeService.deleteEntity(req.body); } catch (error) { console.log(error); } } async changeHomeBackgroundUrl(req) { async changeOrderEntity(req) { try { return await HomeService.changeHomeBackgroundUrl(req.body); return await HomeService.changeOrderEntity(req.body); } catch (error) { console.log(error); } Loading index.js +27 −17 Original line number Diff line number Diff line 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; Loading @@ -26,27 +28,40 @@ wss.on('connection', (ws) => { ws.id = Date.now(); ws.on('message', async (req) => { req = JSON.parse(req); console.log('req: ', 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((entityBlob) => { submitFilesToUsers(entityBlob); getHomeEntitiesData.entitiesImages.forEach((entityBuffer) => { submitFilesToUsers(entityBuffer); }); submitToUsers('getHomeEntities', getHomeEntitiesData.entities); break; case 'getHomeBackgroundUrl': const homeBackgroundUrl = await HomeController.getHomeBackgroundUrl(); submitToUsers('getHomeBackgroundUrl', homeBackgroundUrl); break; case 'createHomeEntity': const createdHomeEntity = await HomeController.createEntity(req); submitToUsers('createHomeEntity', createdHomeEntity); break; case 'editHomeEntity': 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); Loading @@ -55,10 +70,6 @@ wss.on('connection', (ws) => { await HomeController.changeOrderEntity(req); submitToUsers('changeOrderHomeEntity', { ...req.body }); break; case 'changeHomeBackgroundUrl': await HomeController.changeHomeBackgroundUrl(req); submitToUsers('changeHomeBackgroundUrl', { ...req.body }); break; } }); }); Loading @@ -67,14 +78,14 @@ filesWss.on('connection', (ws) => { users.add(ws); console.log('users: ', users.size); ws.on('message', async (req) => { console.log('req', req); await HomeController.createImageEntity(req); submitToUsers('createImageHomeEntity', 'Post data of image, please'); console.log('req: ', req); await HomeController.createImage(req); submitToUsers('createImageHomeEntity', ''); }); }); function submitToUsers(event, data) { console.log('data in submitToUsers:', data); // console.log('data in submitToUsers:', data); wss.clients.forEach((client) => { client.send( JSON.stringify({ Loading @@ -86,7 +97,6 @@ function submitToUsers(event, data) { } function submitFilesToUsers(data) { console.log('submitFilesToUsers', data); filesWss.clients.forEach((client) => { client.send(data); }); Loading prisma/schema.prisma +3 −4 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ datasource db { provider = "postgresql" url = env("DATABASE_URL") // при запуске с рабочего ноутбука directUrl = env("DIRECT_URL") // directUrl = env("DIRECT_URL") } model User { Loading @@ -24,13 +24,11 @@ model User { email String? phone_number String? settings Json? home_entities Home_entity[] home_entities Json? } model Home_entity { entity_uuid String @id @default(uuid()) entity_user User? @relation(fields: [user_nick_name], references: [nick_name]) user_nick_name String? @unique entity_order Int @default(autoincrement()) entity_type String title String? Loading @@ -49,6 +47,7 @@ model Home_entity { } model Setting { setting_uuid String @id @default(uuid()) setting_name String @unique setting_value String } Loading
.env +2 −2 Original line number Diff line number Diff line Loading @@ -7,8 +7,8 @@ DB_HOST=localhost DB_PORT=5432 # prisma db push # при запуске с родного ноутбука # DATABASE_URL="postgresql://postgres:xoxo2002!@localhost:5432/Shelf_note" DATABASE_URL="postgresql://postgres:xoxo2002!@localhost:5432/Shelf_note" # при запуске с рабочего ноутбука DATABASE_URL="postgresql://postgres.wrwwvdgppriodcdoyohp:Xoxo2002!qwe@aws-0-eu-central-1.pooler.supabase.com:6543/postgres?pgbouncer=true" # DATABASE_URL="postgresql://postgres.wrwwvdgppriodcdoyohp:Xoxo2002!qwe@aws-0-eu-central-1.pooler.supabase.com:6543/postgres?pgbouncer=true" DIRECT_URL="postgresql://postgres.wrwwvdgppriodcdoyohp:Xoxo2002!qwe@aws-0-eu-central-1.pooler.supabase.com:5432/postgres"
.gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ yarn-error.log* pnpm-debug.log* lerna-debug.log* public node_modules .DS_Store dist Loading
controllers/homeController.js +26 −12 Original line number Diff line number Diff line import HomeService from '../services/homeService.js'; class HomeController { async getEntities() { async getHomeBackground() { try { return await HomeService.getEntities(); return await HomeService.getHomeBackground(); } catch (error) { console.log(error); return error; } } async getHomeBackgroundUrl() { async changeHomeBackground(req) { try { return await HomeService.changeHomeBackground(req.body); } catch (error) { console.log(error); } } async removeHomeBackground() { try { await HomeService.removeHomeBackground(); } catch (error) { console.log(error); } } async getEntities() { try { return await HomeService.getHomeBackgroundUrl(); return await HomeService.getEntities(); } catch (error) { console.log(error); return error; Loading @@ -24,9 +38,9 @@ class HomeController { console.log(error); } } async createImageEntity(req) { async createImage(req) { try { return await HomeService.createImageEntity(req); return await HomeService.createImage(req); } catch (error) { console.log(error); } Loading @@ -38,23 +52,23 @@ class HomeController { console.log(error); } } async deleteEntity(req) { async cropImage(req) { try { return await HomeService.deleteEntity(req.body); return await HomeService.cropImage(req.body); } catch (error) { console.log(error); } } async changeOrderEntity(req) { async deleteEntity(req) { try { return await HomeService.changeOrderEntity(req.body); return await HomeService.deleteEntity(req.body); } catch (error) { console.log(error); } } async changeHomeBackgroundUrl(req) { async changeOrderEntity(req) { try { return await HomeService.changeHomeBackgroundUrl(req.body); return await HomeService.changeOrderEntity(req.body); } catch (error) { console.log(error); } Loading
index.js +27 −17 Original line number Diff line number Diff line 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; Loading @@ -26,27 +28,40 @@ wss.on('connection', (ws) => { ws.id = Date.now(); ws.on('message', async (req) => { req = JSON.parse(req); console.log('req: ', 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((entityBlob) => { submitFilesToUsers(entityBlob); getHomeEntitiesData.entitiesImages.forEach((entityBuffer) => { submitFilesToUsers(entityBuffer); }); submitToUsers('getHomeEntities', getHomeEntitiesData.entities); break; case 'getHomeBackgroundUrl': const homeBackgroundUrl = await HomeController.getHomeBackgroundUrl(); submitToUsers('getHomeBackgroundUrl', homeBackgroundUrl); break; case 'createHomeEntity': const createdHomeEntity = await HomeController.createEntity(req); submitToUsers('createHomeEntity', createdHomeEntity); break; case 'editHomeEntity': 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); Loading @@ -55,10 +70,6 @@ wss.on('connection', (ws) => { await HomeController.changeOrderEntity(req); submitToUsers('changeOrderHomeEntity', { ...req.body }); break; case 'changeHomeBackgroundUrl': await HomeController.changeHomeBackgroundUrl(req); submitToUsers('changeHomeBackgroundUrl', { ...req.body }); break; } }); }); Loading @@ -67,14 +78,14 @@ filesWss.on('connection', (ws) => { users.add(ws); console.log('users: ', users.size); ws.on('message', async (req) => { console.log('req', req); await HomeController.createImageEntity(req); submitToUsers('createImageHomeEntity', 'Post data of image, please'); console.log('req: ', req); await HomeController.createImage(req); submitToUsers('createImageHomeEntity', ''); }); }); function submitToUsers(event, data) { console.log('data in submitToUsers:', data); // console.log('data in submitToUsers:', data); wss.clients.forEach((client) => { client.send( JSON.stringify({ Loading @@ -86,7 +97,6 @@ function submitToUsers(event, data) { } function submitFilesToUsers(data) { console.log('submitFilesToUsers', data); filesWss.clients.forEach((client) => { client.send(data); }); Loading
prisma/schema.prisma +3 −4 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ datasource db { provider = "postgresql" url = env("DATABASE_URL") // при запуске с рабочего ноутбука directUrl = env("DIRECT_URL") // directUrl = env("DIRECT_URL") } model User { Loading @@ -24,13 +24,11 @@ model User { email String? phone_number String? settings Json? home_entities Home_entity[] home_entities Json? } model Home_entity { entity_uuid String @id @default(uuid()) entity_user User? @relation(fields: [user_nick_name], references: [nick_name]) user_nick_name String? @unique entity_order Int @default(autoincrement()) entity_type String title String? Loading @@ -49,6 +47,7 @@ model Home_entity { } model Setting { setting_uuid String @id @default(uuid()) setting_name String @unique setting_value String }