derv-net/routes/you.js
2025-03-02 04:09:17 -05:00

100 lines
No EOL
2.2 KiB
JavaScript

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;