diff --git a/.env b/.env index bc8963deecf00f408812e71c8ad7f8a3a5f96985..7385ade5b651943532ea2f93c2bb5210fabbe5a8 100644 --- a/.env +++ b/.env @@ -5,8 +5,5 @@ DB_PASSWORD=xoxo2002! DB_HOST=localhost DB_PORT=5432 -# Connect to Supabase via connection pooling with Supavisor. -DATABASE_URL="postgresql://postgres.wrwwvdgppriodcdoyohp:Xoxo2002!qwe@aws-0-eu-central-1.pooler.supabase.com:6543/postgres?pgbouncer=true" +DATABASE_URL="postgresql://postgres:xoxo2002!@localhost:5432/Shelf_note" -# Direct connection to the database. Used for migrations. -DIRECT_URL="postgresql://postgres.wrwwvdgppriodcdoyohp:Xoxo2002!qwe@aws-0-eu-central-1.pooler.supabase.com:5432/postgres" \ No newline at end of file diff --git a/controllers/homeController.js b/controllers/homeController.js index 71166cd6b2cbfc337bb32fe59e99ad31ff0c04d0..ff8c524bee203fea635e75fa81ce413a412475ca 100644 --- a/controllers/homeController.js +++ b/controllers/homeController.js @@ -1,4 +1,4 @@ -import HomeService from "../services/homeService.js"; +import HomeService from '../services/homeService.js'; class HomeController { async getEntities() { @@ -9,6 +9,14 @@ class HomeController { return error; } } + async getHomeBackgroundUrl() { + try { + return await HomeService.getHomeBackgroundUrl(); + } catch (error) { + console.log(error); + return error; + } + } async createEntity(req) { try { return await HomeService.createEntity(req.body); @@ -37,6 +45,13 @@ class HomeController { console.log(error); } } + async changeHomeBackgroundUrl(req) { + try { + return await HomeService.changeHomeBackgroundUrl(req.body); + } catch (error) { + console.log(error); + } + } } export default new HomeController(); diff --git a/index.js b/index.js index 5f01224d7a1aa8e231e540f814bb77a39e95f180..023c6ea3ab96ca15cdc2ae6284d162b3b6d074d0 100644 --- a/index.js +++ b/index.js @@ -30,6 +30,17 @@ wss.on('connection', (ws) => { ); }); break; + case 'getHomeBackgroundUrl': + const homeBackgroundUrl = await HomeController.getHomeBackgroundUrl(); + wss.clients.forEach((client) => { + client.send( + JSON.stringify({ + event: 'getHomeBackgroundUrl', + data: homeBackgroundUrl + }) + ); + }); + break; case 'createHomeEntity': const createdHomeEntity = await HomeController.createEntity(req); wss.clients.forEach((client) => { @@ -74,6 +85,17 @@ wss.on('connection', (ws) => { ); }); break; + case 'changeHomeBackgroundUrl': + await HomeController.changeHomeBackgroundUrl(req); + wss.clients.forEach((client) => { + client.send( + JSON.stringify({ + event: 'changeHomeBackgroundUrl', + data: { ...req.body } + }) + ); + }); + break; } }); }); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 6d0b2b5ea973d65a6f6426effb5ff806b65be324..7d9d9431b40815334286b35e01144d974c9d5886 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -12,7 +12,6 @@ generator client { datasource db { provider = "postgresql" url = env("DATABASE_URL") - directUrl = env("DIRECT_URL") } model User { @@ -35,10 +34,19 @@ model Home_entity { entity_type String title String? text String? @db.Text - image_data String? @db.Text + text_size String? + paragraph_size String? + text_position String? + image_url String? @db.Text image_width Int? image_height Int? image_position String? + image_scale String? table_columns Json? table_data Json? } + +model Setting { + setting_name String @unique + setting_value String +} diff --git a/services/homeService.js b/services/homeService.js index e0c229859319514aebcd34d50b88f00b6edb4758..af767e02ac7757e548a5197e88ebe17b561d3f39 100644 --- a/services/homeService.js +++ b/services/homeService.js @@ -8,8 +8,14 @@ class HomeService { orderBy: [{ entity_order: 'asc' }] }); } + async getHomeBackgroundUrl() { + return prisma.setting.findFirst({ + where: { + setting_name: 'homeBackgroundUrl' + } + }); + } async createEntity(body) { - console.log('body: ', body); return prisma.home_entity.create({ data: body }); } async editEntity(body) { @@ -38,12 +44,10 @@ class HomeService { orderBy: [{ entity_order: 'asc' }] }); const currentEntity = allEntities.find((entity) => entity.entity_uuid === body.entity_uuid); - console.log('currentEntity: ', currentEntity); const nextEntity = body.direction === 'up' ? allEntities.reverse().find((entity) => entity.entity_order < currentEntity.entity_order) : allEntities.find((entity) => entity.entity_order > currentEntity.entity_order); - console.log('nextEntity: ', nextEntity); await prisma.home_entity.update({ where: { entity_uuid: currentEntity.entity_uuid @@ -52,7 +56,6 @@ class HomeService { entity_order: nextEntity.entity_order } }); - // await Home_entity.upsert({...currentEntity, entity_order: nextEntity.entity_order}); await prisma.home_entity.update({ where: { entity_uuid: nextEntity.entity_uuid @@ -61,9 +64,24 @@ class HomeService { entity_order: currentEntity.entity_order } }); - // await Home_entity.upsert({...nextEntity, entity_order: currentEntity.entity_order}); return body; } + async changeHomeBackgroundUrl(body) { + const homeBackgroundUrl = await prisma.setting.findFirst({ + where: { + setting_name: 'homeBackgroundUrl' + } + }); + if (homeBackgroundUrl) { + return prisma.setting.update({ + where: { + setting_name: 'homeBackgroundUrl' + }, + data: { ...body } + }); + } + return prisma.setting.create({ data: { ...body } }); + } } export default new HomeService();