AddRule.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 AddRule extends API {
  6. constructor() {
  7. super()
  8. this.setPath('/QK/Rule')
  9. this.setMethod('POST')
  10. }
  11. async onRequest(req, res) {
  12. let {
  13. uuid,
  14. session,
  15. id,
  16. name,
  17. account,
  18. crouse,
  19. state
  20. } = req.body
  21. if ([uuid, session, name, account, crouse].some(value => value === '' || value === null || value === undefined) || (loop && !day_of_week))
  22. return res.json({
  23. ...BaseStdResponse.MISSING_PARAMETER
  24. })
  25. // 检查 session
  26. if (!await AccessControl.checkSession(uuid, session))
  27. return res.status(401).json({
  28. ...BaseStdResponse.ACCESS_DENIED
  29. })
  30. let sql, r
  31. const time = new Date().getTime()
  32. if (!id) {
  33. sql = 'INSERT INTO qk_rule (\`name\`, create_user, create_time, account, crouse) VALUES (?, ?, ?, ?, ?)'
  34. r = await db.query(sql, [name, uuid, time, account, crouse])
  35. } else {
  36. sql = 'UPDATE qk_rule SET \`name\` = ?, account = ?, crouse = ?, update_time = ?, \`state\` = ? WHERE id = ? AND create_user = ?'
  37. r = await db.query(sql, [name, account, crouse, time, state, id, uuid])
  38. }
  39. try {
  40. if (r && r.affectedRows > 0) {
  41. res.json({
  42. ...BaseStdResponse.OK
  43. })
  44. } else {
  45. res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '添加规则失败!数据库错误' })
  46. }
  47. } catch (err) {
  48. this.logger.error(`添加规则失败!${err.stack}`)
  49. res.json({
  50. ...BaseStdResponse.ERR,
  51. msg: "添加规则失败!",
  52. });
  53. }
  54. }
  55. }
  56. module.exports.AddRule = AddRule;