2025-05-07 16:02:39 +08:00

102 lines
3.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const express = require('express');
const router = express.Router();
const {
getQuestions,
createQuestion,
addAnswer,
deleteQuestion,
deleteAnswer
} = require('../utils/db-utils');
// 获取所有问题
router.get('/questions', (req, res) => {
try {
const questions = getQuestions();
res.json({ success: true, questions });
} catch (error) {
console.error('获取问题列表失败:', error);
res.status(500).json({ success: false, message: '获取问题列表失败', error: error.message });
}
});
// 创建新问题
router.post('/questions', (req, res) => {
try {
const { title, content } = req.body;
const userInfo = req.body.userInfo || {};
if (!title || !content) {
return res.status(400).json({ success: false, message: '标题和内容不能为空' });
}
const result = createQuestion(title, content, userInfo.username);
res.status(201).json(result);
} catch (error) {
console.error('创建问题失败:', error);
res.status(500).json({ success: false, message: '创建问题失败', error: error.message });
}
});
// 添加回答
router.post('/questions/:questionId/answers', (req, res) => {
try {
const { questionId } = req.params;
const { content } = req.body;
const userInfo = req.body.userInfo || {};
if (!content) {
return res.status(400).json({ success: false, message: '回答内容不能为空' });
}
// 检查用户权限
if (!userInfo.access_level || userInfo.access_level < 2) {
return res.status(403).json({ success: false, message: '权限不足需要权限级别大于等于2' });
}
const result = addAnswer(questionId, content, userInfo.username);
res.status(201).json(result);
} catch (error) {
console.error('添加回答失败:', error);
res.status(500).json({ success: false, message: '添加回答失败', error: error.message });
}
});
// 删除问题
router.delete('/questions/:questionId', (req, res) => {
try {
const { questionId } = req.params;
const userInfo = req.body.userInfo || {};
// 检查用户权限
if (!userInfo.access_level || userInfo.access_level < 3) {
return res.status(403).json({ success: false, message: '权限不足需要权限级别大于等于3' });
}
const result = deleteQuestion(questionId);
res.json(result);
} catch (error) {
console.error('删除问题失败:', error);
res.status(500).json({ success: false, message: '删除问题失败', error: error.message });
}
});
// 删除回答
router.delete('/answers/:answerId', (req, res) => {
try {
const { answerId } = req.params;
const userInfo = req.body.userInfo || {};
// 检查用户权限
if (!userInfo.access_level || userInfo.access_level < 3) {
return res.status(403).json({ success: false, message: '权限不足需要权限级别大于等于3' });
}
const result = deleteAnswer(answerId);
res.json(result);
} catch (error) {
console.error('删除回答失败:', error);
res.status(500).json({ success: false, message: '删除回答失败', error: error.message });
}
});
module.exports = router;