From da7e25d33929574afb3bab2f21fb6a88abe713b3 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 10 Jun 2025 23:25:51 +0300 Subject: [PATCH 1/3] add support table and api --- .../kfu-m-24-1/sber_mobile/DB_Scheme.txt | 9 ++++++++ .../routers/kfu-m-24-1/sber_mobile/index.js | 4 +++- .../kfu-m-24-1/sber_mobile/supportApi.js | 22 +++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 server/routers/kfu-m-24-1/sber_mobile/supportApi.js diff --git a/server/routers/kfu-m-24-1/sber_mobile/DB_Scheme.txt b/server/routers/kfu-m-24-1/sber_mobile/DB_Scheme.txt index fa55eb6..0a7b25a 100644 --- a/server/routers/kfu-m-24-1/sber_mobile/DB_Scheme.txt +++ b/server/routers/kfu-m-24-1/sber_mobile/DB_Scheme.txt @@ -179,6 +179,15 @@ CREATE TABLE tickets ( updated_at TIMESTAMPTZ DEFAULT NOW() ); +-- 18. Сообщения в службу поддержки +CREATE TABLE support ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + user_id UUID NOT NULL REFERENCES auth.users(id), + message TEXT NOT NULL, + is_from_user BOOLEAN NOT NULL, + created_at TIMESTAMPTZ DEFAULT NOW() +); + -- Индексы CREATE INDEX idx_buildings_management_company ON buildings(management_company_id); CREATE INDEX idx_management_services_company ON management_services(management_company_id); diff --git a/server/routers/kfu-m-24-1/sber_mobile/index.js b/server/routers/kfu-m-24-1/sber_mobile/index.js index 3a655bc..e419be7 100644 --- a/server/routers/kfu-m-24-1/sber_mobile/index.js +++ b/server/routers/kfu-m-24-1/sber_mobile/index.js @@ -14,6 +14,7 @@ const apartmentsRouter = require('./apartments'); const buildingsRouter = require('./buildings'); const userApartmentsRouter = require('./user_apartments'); const avatarRouter = require('./media'); +const supportRouter = require('./supportApi'); module.exports = router; @@ -31,4 +32,5 @@ router.use('', utilityPaymentsRouter); router.use('', apartmentsRouter); router.use('', buildingsRouter); router.use('', userApartmentsRouter); -router.use('', avatarRouter); \ No newline at end of file +router.use('', avatarRouter); +router.use('', supportRouter); \ No newline at end of file diff --git a/server/routers/kfu-m-24-1/sber_mobile/supportApi.js b/server/routers/kfu-m-24-1/sber_mobile/supportApi.js new file mode 100644 index 0000000..a741e89 --- /dev/null +++ b/server/routers/kfu-m-24-1/sber_mobile/supportApi.js @@ -0,0 +1,22 @@ +const express = require('express'); +const router = express.Router(); +const { supabase } = require('./supabaseClient'); + +// POST /api/support +router.post('/support', async (req, res) => { + const { user_id, message } = req.body; + if (!user_id || !message) { + return res.status(400).json({ error: 'user_id и message обязательны' }); + } + try { + const { data, error } = await supabase + .from('support') + .insert([{ user_id, message, is_from_user: true }]); + if (error) throw error; + return res.json({ reply: 'Спасибо за ваше сообщение! Служба поддержки свяжется с вами в ближайшее время.' }); + } catch (err) { + return res.status(500).json({ error: 'Ошибка при сохранении сообщения' }); + } +}); + +module.exports = router; \ No newline at end of file From 7503d076e8605561e1dc04046024d2d99a09b1d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B5=D0=B2=20=D0=9C?= =?UTF-8?q?=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=A1=D0=B5=D1=80=D0=B3=D0=B5?= =?UTF-8?q?=D0=B5=D0=B2=D0=B8=D1=87?= Date: Wed, 11 Jun 2025 18:51:32 +0300 Subject: [PATCH 2/3] fix supabase insert --- server/routers/kfu-m-24-1/sber_mobile/supportApi.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/routers/kfu-m-24-1/sber_mobile/supportApi.js b/server/routers/kfu-m-24-1/sber_mobile/supportApi.js index a741e89..6dda12e 100644 --- a/server/routers/kfu-m-24-1/sber_mobile/supportApi.js +++ b/server/routers/kfu-m-24-1/sber_mobile/supportApi.js @@ -9,9 +9,9 @@ router.post('/support', async (req, res) => { return res.status(400).json({ error: 'user_id и message обязательны' }); } try { - const { data, error } = await supabase + const { error } = await supabase .from('support') - .insert([{ user_id, message, is_from_user: true }]); + .insert({ user_id, message, is_from_user: true }); if (error) throw error; return res.json({ reply: 'Спасибо за ваше сообщение! Служба поддержки свяжется с вами в ближайшее время.' }); } catch (err) { From 5c1421242944fb2244de3bf51103b909f6cb448a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B5=D0=B2=20=D0=9C?= =?UTF-8?q?=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=A1=D0=B5=D1=80=D0=B3=D0=B5?= =?UTF-8?q?=D0=B5=D0=B2=D0=B8=D1=87?= Date: Wed, 11 Jun 2025 19:03:58 +0300 Subject: [PATCH 3/3] fix router --- .../kfu-m-24-1/sber_mobile/supportApi.js | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/server/routers/kfu-m-24-1/sber_mobile/supportApi.js b/server/routers/kfu-m-24-1/sber_mobile/supportApi.js index 6dda12e..71eef57 100644 --- a/server/routers/kfu-m-24-1/sber_mobile/supportApi.js +++ b/server/routers/kfu-m-24-1/sber_mobile/supportApi.js @@ -1,22 +1,16 @@ -const express = require('express'); -const router = express.Router(); -const { supabase } = require('./supabaseClient'); +const router = require('express').Router(); +const { getSupabaseClient } = require('./supabaseClient'); // POST /api/support router.post('/support', async (req, res) => { + const supabase = getSupabaseClient(); const { user_id, message } = req.body; - if (!user_id || !message) { - return res.status(400).json({ error: 'user_id и message обязательны' }); - } - try { - const { error } = await supabase - .from('support') - .insert({ user_id, message, is_from_user: true }); - if (error) throw error; - return res.json({ reply: 'Спасибо за ваше сообщение! Служба поддержки свяжется с вами в ближайшее время.' }); - } catch (err) { - return res.status(500).json({ error: 'Ошибка при сохранении сообщения' }); - } + if (!user_id || !message) return res.status(400).json({ error: 'user_id и message обязательны' }); + const { error } = await supabase + .from('support') + .insert({ user_id, message, is_from_user: true }); + if (error) return res.status(400).json({ error: error.message }); + res.json({ reply: 'Спасибо за ваше сообщение! Служба поддержки свяжется с вами в ближайшее время.' }); }); module.exports = router; \ No newline at end of file