50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
/**
|
||
* 认知规则 读取+版本切换 · /brain/cognition
|
||
*/
|
||
|
||
const { Router } = require('express');
|
||
const router = Router();
|
||
|
||
// GET /brain/cognition - 查询规则(支持category和status过滤)
|
||
router.get('/', (req, res) => {
|
||
try {
|
||
let sql = 'SELECT * FROM persona_cognition WHERE 1=1';
|
||
const params = [];
|
||
|
||
if (req.query.category) {
|
||
sql += ' AND category = ?';
|
||
params.push(req.query.category);
|
||
}
|
||
if (req.query.status) {
|
||
sql += ' AND status = ?';
|
||
params.push(req.query.status);
|
||
}
|
||
|
||
sql += ' ORDER BY effective_from DESC';
|
||
|
||
const rows = req.db.prepare(sql).all(...params);
|
||
res.json({ data: rows, total: rows.length });
|
||
} catch (err) {
|
||
res.status(500).json({ error: true, message: err.message });
|
||
}
|
||
});
|
||
|
||
// GET /brain/cognition/:rule_id/history - 查询规则版本历史
|
||
router.get('/:rule_id/history', (req, res) => {
|
||
try {
|
||
const baseId = req.params.rule_id.replace(/-\d+$/, '');
|
||
const rows = req.db
|
||
.prepare(
|
||
`SELECT * FROM persona_cognition
|
||
WHERE rule_id LIKE ? || '%'
|
||
ORDER BY version DESC`
|
||
)
|
||
.all(baseId);
|
||
res.json({ data: rows, total: rows.length });
|
||
} catch (err) {
|
||
res.status(500).json({ error: true, message: err.message });
|
||
}
|
||
});
|
||
|
||
module.exports = router;
|