Browse Source

✨ feat: 增加路径状态改变接口

Pchen. 9 months ago
parent
commit
7b70a9766a
1 changed files with 62 additions and 0 deletions
  1. 62 0
      apis/Lepao/Path/ChangePathState.js

+ 62 - 0
apis/Lepao/Path/ChangePathState.js

@@ -0,0 +1,62 @@
+const API = require("../../../lib/API");
+const db = require("../../../plugin/DataBase/db");
+const AccessControl = require("../../../lib/AccessControl");
+const { BaseStdResponse } = require("../../../BaseStdResponse");
+
+class ChangePathState extends API {
+    constructor() {
+        super()
+
+        this.setPath('/Lepao/ChangePathState')
+        this.setMethod('POST')
+    }
+
+    async onRequest(req, res) {
+        let {
+            uuid,
+            session,
+            id,
+            state
+        } = req.body
+
+        if ([uuid, session, id, state].some(value => value === '' || value === null || value === undefined))
+            return res.json({
+                ...BaseStdResponse.MISSING_PARAMETER
+            })
+
+        // 检查 session
+        if (!await AccessControl.checkSession(uuid, session))
+            return res.status(401).json({
+                ...BaseStdResponse.ACCESS_DENIED
+            })
+
+        // 检查权限
+        let permission = await AccessControl.getPermission(uuid)
+        if (!permission.includes("admin") && !permission.includes("path"))
+            return res.json({
+                ...BaseStdResponse.PERMISSION_DENIED
+            })
+
+        try {
+            let sql = 'UPDATE path_data SET state = ? WHERE id = ?'
+            let r = await db.query(sql, [state, id])
+
+            if (r && r.affectedRows > 0) {
+                res.json({
+                    ...BaseStdResponse.OK
+                })
+            } else {
+                res.json({ ...BaseStdResponse.ERR,  msg: '改变路径状态失败!数据库错误' })
+            }
+        } catch (err) {
+            this.logger.error(`改变路径状态失败!${err.stack}`)
+            res.json({
+                ...BaseStdResponse.ERR,
+                msg: "改变路径状态失败!",
+            });
+        }
+    }
+
+}
+
+module.exports.ChangePathState = ChangePathState