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;