69 lines
2.5 KiB
JavaScript
69 lines
2.5 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const db = require('../db');
|
|
const auth = require('../middleware/auth');
|
|
|
|
router.use(auth);
|
|
|
|
// 获取所有接口 (含搜索)
|
|
router.get('/', async (req, res) => {
|
|
try {
|
|
const { search } = req.query;
|
|
let query = 'SELECT * FROM endpoints WHERE user_id = ?';
|
|
let params = [req.user.username];
|
|
|
|
if (search) {
|
|
query += ' AND name LIKE ?';
|
|
params.push(`%${search}%`);
|
|
}
|
|
|
|
query += ' ORDER BY created_at DESC';
|
|
const [rows] = await db.query(query, params);
|
|
res.json(rows);
|
|
} catch (err) {
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
// 新增接口
|
|
router.post('/', async (req, res) => {
|
|
try {
|
|
const { name, url, method, body, category, api_code, user_name, module } = req.body;
|
|
const [result] = await db.query(
|
|
'INSERT INTO endpoints (user_id, name, url, method, body, category, api_code, user_name, module) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
|
|
[req.user.username, name, url, method, body || null, category || '旗舰版PP', api_code || null, user_name || null, module || null]
|
|
);
|
|
res.json({ id: result.insertId, name, url, method, body, category: category || '旗舰版PP', api_code: api_code || null, user_name: user_name || null, module: module || null });
|
|
} catch (err) {
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
// 更新接口
|
|
router.put('/:id', async (req, res) => {
|
|
try {
|
|
const { id } = req.params;
|
|
const { name, url, method, body, category, api_code, user_name, module } = req.body;
|
|
await db.query(
|
|
'UPDATE endpoints SET name = ?, url = ?, method = ?, body = ?, category = ?, api_code = ?, user_name = ?, module = ? WHERE id = ? AND user_id = ?',
|
|
[name, url, method, body || null, category || '旗舰版PP', api_code || null, user_name || null, module || null, id, req.user.username]
|
|
);
|
|
res.json({ message: 'Updated successfully' });
|
|
} catch (err) {
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
// 删除接口
|
|
router.delete('/:id', async (req, res) => {
|
|
try {
|
|
const { id } = req.params;
|
|
await db.query('DELETE FROM endpoints WHERE id = ? AND user_id = ?', [id, req.user.username]);
|
|
res.json({ message: 'Deleted successfully' });
|
|
} catch (err) {
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|