DeleteProxy.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const API = require('../../../../lib/API')
  2. const db = require('../../../../plugin/DataBase/db')
  3. const AccessControl = require('../../../../lib/AccessControl')
  4. const { BaseStdResponse } = require('../../../../BaseStdResponse')
  5. class DeleteProxy extends API {
  6. constructor() {
  7. super()
  8. this.setPath('/Admin/Lepao/Proxy/Delete')
  9. this.setMethod('delete')
  10. }
  11. async onRequest(req, res) {
  12. const { uuid, session, id } = req.body
  13. if ([uuid, session, id].some((v) => v === '' || v === null || v === undefined)) {
  14. return res.json({ ...BaseStdResponse.MISSING_PARAMETER })
  15. }
  16. if (!await AccessControl.checkSession(uuid, session)) {
  17. return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED })
  18. }
  19. const permission = await AccessControl.getPermission(uuid)
  20. if (!permission.includes('admin') && !permission.includes('service')) {
  21. return res.json({ ...BaseStdResponse.PERMISSION_DENIED })
  22. }
  23. const poolId = Number(id)
  24. if (!Number.isFinite(poolId) || poolId <= 0) {
  25. return res.json({ ...BaseStdResponse.ERR, msg: '参数错误' })
  26. }
  27. const r = await db.query('DELETE FROM lepao_proxy_pool WHERE id = ?', [poolId])
  28. const affected = r?.affectedRows ?? 0
  29. return res.json({
  30. ...BaseStdResponse.OK,
  31. data: { deleted: affected }
  32. })
  33. }
  34. }
  35. module.exports.DeleteProxy = DeleteProxy