import { Router } from "express"; import { apiStat } from "../lib.js"; import { initDb } from "../db.js"; import { randomBytes } from 'node:crypto'; let db = await initDb(); const router = Router(); const minChar = 1; const maxChar = 32; router.post('/', async (req, res, next) => { let { username } = res.auth; let { post, type, id } = req.body; if (!username || !post || !id || !type) { apiStat(res, next, 'Fields are missing.') return; } if (post.length < minChar || post.length > maxChar) { apiStat(res, next, `Post length isn't ${minChar} to ${maxChar} characters.`) return; } let token = randomBytes(12).toString('hex'); await db.run('INSERT INTO comment (username, date, content, id) VALUES (?,?,?,?)', [ username, (+new Date), post, token ]); await db.run('INSERT INTO feeder (parentType, parentId , childType , childId , sortId ) VALUES(?,?,?,?,?)', [ type, id, 'comment', token, (+new Date) ]); apiStat(res, next, `Comment submitted.`, '/comment/' + token) }) export default router;