You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

171 lines
5.1 KiB

import express from 'express';
import { fetchDataSources, saveDataSource, fetchAIModels, saveAIModel, fetchSystemSettings, saveSystemSettings } from '../services/configService';
const router = express.Router();
// 获取数据源列表
router.get('/datasources', async (req, res) => {
try {
const data = await fetchDataSources();
res.status(200).json({ success: true, data });
} catch (error) {
res.status(500).json({ success: false, message: '获取数据源列表失败' });
}
});
// 保存数据源配置
router.post('/datasources', async (req, res) => {
try {
const data = await saveDataSource(req.body);
res.status(200).json({ success: true, message: '配置保存成功' });
} catch (error) {
res.status(500).json({ success: false, message: '保存数据源配置失败' });
}
});
// 获取AI模型列表
router.get('/ai-models', async (req, res) => {
try {
const data = await fetchAIModels();
res.status(200).json({ success: true, data });
} catch (error) {
res.status(500).json({ success: false, message: '获取AI模型列表失败' });
}
});
// 保存AI模型配置
router.post('/ai-models', async (req, res) => {
try {
const data = await saveAIModel(req.body);
res.status(200).json({ success: true, message: '配置保存成功' });
} catch (error) {
res.status(500).json({ success: false, message: '保存AI模型配置失败' });
}
});
// 获取系统设置
router.get('/system', async (req, res) => {
try {
const data = await fetchSystemSettings();
res.status(200).json({ success: true, data });
} catch (error) {
res.status(500).json({ success: false, message: '获取系统设置失败' });
}
});
// 保存系统设置
router.post('/system', async (req, res) => {
try {
const data = await saveSystemSettings(req.body);
res.status(200).json({ success: true, message: '设置保存成功' });
} catch (error) {
res.status(500).json({ success: false, message: '保存系统设置失败' });
}
});
// 获取用户设置
router.get('/user', async (req, res) => {
try {
const data = {
preferences: {
theme: 'light',
language: 'zh-CN',
timezone: 'Asia/Shanghai'
},
notifications: {
email: true,
sms: false,
wechat: true
}
};
res.status(200).json({ success: true, data });
} catch (error) {
res.status(500).json({ success: false, message: '获取用户设置失败' });
}
});
// 保存用户设置
router.post('/user', async (req, res) => {
try {
// 模拟保存操作
await new Promise(resolve => setTimeout(resolve, 200));
res.status(200).json({ success: true, message: '设置保存成功' });
} catch (error) {
res.status(500).json({ success: false, message: '保存用户设置失败' });
}
});
// 测试数据库连接
router.post('/test-database', async (req, res) => {
try {
const { dbType, config } = req.body;
console.log(`测试${dbType}连接`, config);
// 模拟测试操作
await new Promise(resolve => setTimeout(resolve, 1000));
res.status(200).json({ success: true, message: `${dbType}连接测试成功` });
} catch (error) {
console.error('测试数据库连接失败:', error);
res.status(500).json({ success: false, message: '测试数据库连接失败' });
}
});
// 测试数据源连接
router.post('/test-datasource', async (req, res) => {
try {
const { dsType, config } = req.body;
console.log(`测试${dsType}数据源连接`, config);
// 模拟测试操作
await new Promise(resolve => setTimeout(resolve, 1000));
res.status(200).json({ success: true, message: `${dsType}数据源连接测试成功` });
} catch (error) {
console.error('测试数据源连接失败:', error);
res.status(500).json({ success: false, message: '测试数据源连接失败' });
}
});
// 保存配置
router.post('/save', async (req, res) => {
try {
const config = req.body;
console.log('保存配置:', config);
// 保存配置到文件
const fs = require('fs');
const path = require('path');
const configPath = path.join(__dirname, '../../../config.json');
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
res.status(200).json({ success: true, message: '配置保存成功' });
} catch (error) {
console.error('保存配置失败:', error);
res.status(500).json({ success: false, message: '保存配置失败' });
}
});
// 获取配置
router.get('/get', async (req, res) => {
try {
// 从文件读取配置
const fs = require('fs');
const path = require('path');
const configPath = path.join(__dirname, '../../../config.json');
let config = {};
if (fs.existsSync(configPath)) {
const configData = fs.readFileSync(configPath, 'utf8');
config = JSON.parse(configData);
}
res.status(200).json({ success: true, data: config });
} catch (error) {
console.error('获取配置失败:', error);
res.status(500).json({ success: false, message: '获取配置失败' });
}
});
export default router;