feat: add system test validation and router admin controls
This commit is contained in:
@@ -97,6 +97,8 @@ export function createAdminApp(services) {
|
||||
loadMindSpaceConfig,
|
||||
updateMindSpaceConfig,
|
||||
memoryV2ConfigService,
|
||||
adminSystemTestService,
|
||||
systemTestAccountService,
|
||||
wordFilterService,
|
||||
planCatalogService,
|
||||
subscriptionService,
|
||||
@@ -315,6 +317,71 @@ export function createAdminApp(services) {
|
||||
res.json(result);
|
||||
});
|
||||
|
||||
adminApi.get('/system-tests/accounts', requireAdmin, async (_req, res) => {
|
||||
if (!systemTestAccountService) {
|
||||
return res.status(503).json({ message: '系统测试账号服务未启用' });
|
||||
}
|
||||
const accounts = await systemTestAccountService.listAccounts();
|
||||
res.json({ accounts });
|
||||
});
|
||||
|
||||
adminApi.post('/system-tests/accounts', requireAdmin, async (req, res) => {
|
||||
if (!systemTestAccountService) {
|
||||
return res.status(503).json({ message: '系统测试账号服务未启用' });
|
||||
}
|
||||
const result = await systemTestAccountService.createAccount({
|
||||
label: req.body?.label,
|
||||
username: req.body?.username,
|
||||
password: req.body?.password,
|
||||
updatedBy: req.currentUser.id,
|
||||
});
|
||||
if (!result.ok) {
|
||||
return res.status(400).json({ message: result.message ?? '保存测试账号失败' });
|
||||
}
|
||||
res.status(201).json({ account: result.account });
|
||||
});
|
||||
|
||||
adminApi.delete('/system-tests/accounts/:accountId', requireAdmin, async (req, res) => {
|
||||
if (!systemTestAccountService) {
|
||||
return res.status(503).json({ message: '系统测试账号服务未启用' });
|
||||
}
|
||||
const result = await systemTestAccountService.deleteAccount(req.params.accountId);
|
||||
if (!result.ok) {
|
||||
return res.status(404).json({ message: result.message ?? '测试账号不存在' });
|
||||
}
|
||||
res.status(204).end();
|
||||
});
|
||||
|
||||
adminApi.post('/system-tests/skill-validation', requireAdmin, async (req, res) => {
|
||||
if (!adminSystemTestService?.runSkillValidation) {
|
||||
return res.status(503).json({ message: '系统测试服务未启用' });
|
||||
}
|
||||
const accountId = String(req.body?.accountId ?? '').trim();
|
||||
let username = String(req.body?.username ?? '').trim();
|
||||
let password = String(req.body?.password ?? '');
|
||||
const skillName = String(req.body?.skillName ?? '').trim();
|
||||
if (accountId) {
|
||||
if (!systemTestAccountService) {
|
||||
return res.status(503).json({ message: '系统测试账号服务未启用' });
|
||||
}
|
||||
const account = await systemTestAccountService.getAccountSecret(accountId);
|
||||
if (!account) {
|
||||
return res.status(404).json({ message: '所选测试账号不存在,请刷新后重试' });
|
||||
}
|
||||
username = account.username;
|
||||
password = account.password;
|
||||
}
|
||||
if (!username || !password) {
|
||||
return res.status(400).json({ message: '请输入账号和密码' });
|
||||
}
|
||||
const result = await adminSystemTestService.runSkillValidation({
|
||||
username,
|
||||
password,
|
||||
skillName,
|
||||
});
|
||||
res.json(result);
|
||||
});
|
||||
|
||||
adminApi.get('/wechat/bindings', requireAdmin, async (req, res) => {
|
||||
if (!wechatAdmin) return res.status(503).json({ message: '服务号管理未启用' });
|
||||
res.json(await wechatAdmin.listBindings(req.query));
|
||||
|
||||
Reference in New Issue
Block a user