feat: POST /admin/demo-seed — admin can trigger demo data seeding and see the raw error

This commit is contained in:
root
2026-10-16 19:15:11 +08:00
parent a7de5e301a
commit c6087d49d7
+11 -1
View File
@@ -77,7 +77,7 @@ const server = http.createServer(async (req, res) => {
}
// ---- 管理(仅 is_admin 登录会话) ----
if (route === '/admin/users' || route === '/admin/invites' || route.startsWith('/admin/invites/')) {
if (route === '/admin/users' || route === '/admin/invites' || route === '/admin/demo-seed' || route.startsWith('/admin/invites/')) {
let auth;
try { auth = authUser(req); }
catch (e) { return send(e.code || 401, false, e.message); }
@@ -156,6 +156,16 @@ const server = http.createServer(async (req, res) => {
if (!r.changes) return send(404, false, '邀请码不存在');
return send(200, true, { deleted: r.changes });
}
if (req.method === 'POST' && route === '/admin/demo-seed') {
const demoRow = db.prepare('SELECT id FROM users WHERE username=?').get('demo');
if (!demoRow) return send(404, false, 'demo 账号不存在');
try {
const r = commandsFor(demoRow.id).handleCommand('demo_seed', {});
return send(200, true, r);
} catch (e) {
return send(500, false, 'demo_seed 失败: ' + (e.message || String(e)));
}
}
return send(404, false, 'not found');
}