import { Router } from "express"; import { initDb } from "../db.js"; let db = await initDb(); const router = Router(); //todo: fix jank router.get('/login', (req, res, next) => { res.ctx.mainPage = 'form' res.ctx.mainCtx = { title: "Log in", message: 'Log into an existing account.', action: "/api/form/you/login", inputs: [ { "key": "Username", "type": "text", "name": "user", "default": "" }, { "key": "Password", "type": "password", "name": "pass", "default": "" } ] } next(); }) router.get('/logout', (req, res, next) => { res.ctx.mainPage = 'form' res.ctx.mainCtx = { title: "Log out", message: 'Are you sure?', action: "/api/form/you/logout", inputs: [] } next(); }) router.get('/new', (req, res, next) => { res.ctx.mainPage = 'form' res.ctx.mainCtx = { title: "Register", message: 'Create an account and join the community!', action: "/api/form/you/new", inputs: [ { "key": "Username", "type": "text", "name": "user", "default": "" }, { "key": "Password", "type": "password", "name": "pass", "default": "" }, { "key": "Password (again)", "type": "password", "name": "pass2", "default": "" } ] } next(); }) router.get('/messages', async (req, res, next) => { let {username, valid} = res.auth; if (!valid) { next(); return; } let messages = await db.all('SELECT * FROM messages WHERE username = ? ORDER BY date DESC LIMIT ? OFFSET ?', [ username, 10, 0 ]); await db.run('UPDATE messages SET status = ? WHERE username = ?', [ 'read', username ]); res.ctx.mainPage = 'messages' res.ctx.mainCtx = { messages } next(); }) export default router;