ChangePathState.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 ChangePathState extends API {
  6. constructor() {
  7. super()
  8. this.setPath('/Lepao/ChangePathState')
  9. this.setMethod('POST')
  10. }
  11. async onRequest(req, res) {
  12. let {
  13. uuid,
  14. session,
  15. id,
  16. state
  17. } = req.body
  18. if ([uuid, session, id, state].some(value => value === '' || value === null || value === undefined))
  19. return res.json({
  20. ...BaseStdResponse.MISSING_PARAMETER
  21. })
  22. // 检查 session
  23. if (!await AccessControl.checkSession(uuid, session))
  24. return res.status(401).json({
  25. ...BaseStdResponse.ACCESS_DENIED
  26. })
  27. // 检查权限
  28. let permission = await AccessControl.getPermission(uuid)
  29. if (!permission.includes("admin") && !permission.includes("path"))
  30. return res.json({
  31. ...BaseStdResponse.PERMISSION_DENIED
  32. })
  33. try {
  34. let sql = 'UPDATE path_data SET state = ? WHERE id = ?'
  35. let r = await db.query(sql, [state, id])
  36. if (r && r.affectedRows > 0) {
  37. let sql = `
  38. SELECT
  39. id
  40. FROM
  41. path_data
  42. WHERE id > ?
  43. LIMIT 1
  44. `
  45. let rows = await db.query(sql, [id])
  46. if (!rows || rows.length === 0)
  47. return res.json({
  48. ...BaseStdResponse.OK,
  49. msg: '审核完毕!无未审核路径'
  50. })
  51. res.json({
  52. ...BaseStdResponse.OK,
  53. data: rows[0].id,
  54. msg: '切换成功!正在转到下一未审核路径'
  55. })
  56. } else {
  57. res.json({ ...BaseStdResponse.ERR, msg: '改变路径状态失败!数据库错误' })
  58. }
  59. } catch (err) {
  60. this.logger.error(`改变路径状态失败!${err.stack}`)
  61. res.json({
  62. ...BaseStdResponse.ERR,
  63. msg: "改变路径状态失败!",
  64. });
  65. }
  66. }
  67. }
  68. module.exports.ChangePathState = ChangePathState