const API = require('../../../../lib/API') const db = require('../../../../plugin/DataBase/db') const AccessControl = require('../../../../lib/AccessControl') const { BaseStdResponse } = require('../../../../BaseStdResponse') class DeleteProxy extends API { constructor() { super() this.setPath('/Admin/Lepao/Proxy/Delete') this.setMethod('delete') } async onRequest(req, res) { const { uuid, session, id } = req.body if ([uuid, session, id].some((v) => v === '' || v === null || v === undefined)) { return res.json({ ...BaseStdResponse.MISSING_PARAMETER }) } if (!await AccessControl.checkSession(uuid, session)) { return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED }) } const permission = await AccessControl.getPermission(uuid) if (!permission.includes('admin') && !permission.includes('service')) { return res.json({ ...BaseStdResponse.PERMISSION_DENIED }) } const poolId = Number(id) if (!Number.isFinite(poolId) || poolId <= 0) { return res.json({ ...BaseStdResponse.ERR, msg: '参数错误' }) } const r = await db.query('DELETE FROM lepao_proxy_pool WHERE id = ?', [poolId]) const affected = r?.affectedRows ?? 0 return res.json({ ...BaseStdResponse.OK, data: { deleted: affected } }) } } module.exports.DeleteProxy = DeleteProxy