SetSendCountAutoApprove.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 SetSendCountAutoApprove extends API {
  6. constructor() {
  7. super()
  8. this.setPath("/Admin/User/SetSendCountAutoApprove")
  9. this.setMethod("POST")
  10. }
  11. async onRequest(req, res) {
  12. let { uuid, session, userid, send_count_auto_approve } = req.body
  13. const flag = Number(send_count_auto_approve)
  14. if ([uuid, session, userid].some(value => value === "" || value === null || value === undefined))
  15. return res.json({ ...BaseStdResponse.MISSING_PARAMETER })
  16. if (![0, 1].includes(flag))
  17. return res.json({ ...BaseStdResponse.ERR, msg: "参数错误" })
  18. if (!await AccessControl.checkSession(uuid, session))
  19. return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED })
  20. const permission = await AccessControl.getPermission(uuid)
  21. if (!permission.includes("admin") && !permission.includes("service"))
  22. return res.json({ ...BaseStdResponse.PERMISSION_DENIED })
  23. const conn = await db.connect()
  24. try {
  25. const [r] = await conn.execute(
  26. "UPDATE users SET send_count_auto_approve = ? WHERE uuid = ?",
  27. [flag, userid]
  28. )
  29. if (!r || r.affectedRows !== 1) {
  30. return res.json({ ...BaseStdResponse.MISSING_FILE, msg: "未找到用户或更新失败" })
  31. }
  32. return res.json({ ...BaseStdResponse.OK, msg: "已保存" })
  33. } catch (err) {
  34. this.logger.error(`设置赠送免审白名单失败: ${err.message || err}`)
  35. return res.json({ ...BaseStdResponse.ERR, msg: "保存失败,请稍后再试" })
  36. } finally {
  37. if (conn?.connection && typeof conn.connection.release === "function" && typeof conn?.release === "function") {
  38. conn.release()
  39. }
  40. }
  41. }
  42. }
  43. module.exports.SetSendCountAutoApprove = SetSendCountAutoApprove