From ad5fc689f99461b225e86148f4c8b9a0c404da26 Mon Sep 17 00:00:00 2001 From: leca Date: Sat, 4 Nov 2023 11:37:10 +0300 Subject: [PATCH] Implemented board options --- src/index.js | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/index.js b/src/index.js index 2f4ab14..19a2c5d 100644 --- a/src/index.js +++ b/src/index.js @@ -5,15 +5,16 @@ const dotenv = require('dotenv'); const MemoryStore = require('memorystore')(session); const fs = require('fs'); const bcrypt = require('bcryptjs'); -const fileupload = require('express-fileupload'); +// const fileupload = require('express-fileupload'); const app = express(); dotenv.config({ path: './web.env' }); +const default_board_settings = require('../default_board_settings.json'); const db = new Client({ user: process.env.DB_USER, - host: "db", + host: process.env.DB_HOST, database: process.env.DB_NAME, password: process.env.DB_PASS, port: 5432 @@ -75,7 +76,20 @@ app.post('/api/post', async (req, res) => { }); app.post('/api/createThread', async (req, res) => { - const { threadName, isLocked, isPinned } = req.body; + let login, token + const { boardId, threadName, isLocked, isPinned, content, options} = req.body; + + try { + let currentSession = req.session; + token = currentSession.token; + login = currentSession.login; + } catch (err) { + console.log(err); + } + + if (token != tokens[login]) return res.status(403).send("Невалидный токен"); + // if () + }); app.get('/api/getBoards', async (req, res) => { @@ -109,8 +123,9 @@ app.post('/api/login', async (req, res) => { }); app.post('/api/createBoard', async (req, res) => { - const { boardId, boardTitle } = req.body; let login, token; + let { boardId, boardTitle, options} = req.body; + try { let currentSession = req.session; token = currentSession.token; @@ -119,7 +134,8 @@ app.post('/api/createBoard', async (req, res) => { console.log(err); } - // if (token != tokens[login] || !token) return res.status(403).send("Невалидный токен"); + if (token != tokens[login] || !token) return res.status(403).send("Невалидный токен"); + if (!boardId || !boardTitle) return res.status(400).send("Неверно сформирован запрос"); console.log(`Admin ${login} is creating new board: ${boardId}, ${boardTitle}`); @@ -127,8 +143,10 @@ app.post('/api/createBoard', async (req, res) => { if (boardId.length == 0 || boardId.length > 5) return res.status(401).send("Неверный размер URI борды"); if (boardTitle.length == 0 || boardTitle.length > 32) return res.status(401).send("Неверный размер имени борды"); if (queryRes.rowCount > 0) return res.status(401).send("Такая борда уже существует."); + + if (!options) options = default_board_settings; - await db.query('INSERT INTO boards (board_id, board_name) VALUES ($1, $2)', [boardId, boardTitle]); + await db.query('INSERT INTO boards (board_id, board_name, options) VALUES ($1, $2, $3)', [boardId, boardTitle, options]); return res.status(200).send("Борда успешно создана"); });