Delete.js 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. const API = require("../../../lib/API.js")
  2. const db = require("../../../plugin/DataBase/db.js")
  3. const AccessControl = require("../../../lib/AccessControl.js")
  4. const { BaseStdResponse } = require("../../../BaseStdResponse.js")
  5. class AdminNoticeDelete extends API {
  6. constructor() {
  7. super()
  8. this.setPath('/Admin/Notice')
  9. this.setMethod('DELETE')
  10. }
  11. async onRequest(req, res) {
  12. const { uuid, session, key } = req.body
  13. if ([uuid, session, key].some(v => v === '' || v === null || v === undefined))
  14. return res.json({ ...BaseStdResponse.MISSING_PARAMETER })
  15. if (!await AccessControl.checkSession(uuid, session))
  16. return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED })
  17. const permission = await AccessControl.getPermission(uuid)
  18. if (!permission.includes("admin") && !permission.includes("service") && !permission.includes("server"))
  19. return res.json({ ...BaseStdResponse.PERMISSION_DENIED })
  20. const rows = await db.query('DELETE FROM notice WHERE `key` = ?', [String(key)])
  21. if (!rows) return res.json({ ...BaseStdResponse.DATABASE_ERR })
  22. if (rows.affectedRows !== 1) return res.json({ ...BaseStdResponse.ERR, msg: '公告不存在' })
  23. return res.json({ ...BaseStdResponse.OK })
  24. }
  25. }
  26. module.exports.AdminNoticeDelete = AdminNoticeDelete