Browse Source

✨ feat: 增加获取下一路径接口

Pchen. 9 months ago
parent
commit
7d510051ee
2 changed files with 76 additions and 1 deletions
  1. 69 0
      apis/Lepao/Path/GetNextPath.js
  2. 7 1
      apis/Lepao/Path/GetPathDetail.js

+ 69 - 0
apis/Lepao/Path/GetNextPath.js

@@ -0,0 +1,69 @@
+const API = require("../../../lib/API")
+const db = require("../../../plugin/DataBase/db")
+const AccessControl = require("../../../lib/AccessControl")
+const { BaseStdResponse } = require("../../../BaseStdResponse")
+
+class GetNextPath extends API {
+    constructor() {
+        super();
+
+        this.setPath('/Lepao/GetNextPath')
+        this.setMethod('GET')
+    }
+
+    async onRequest(req, res) {
+        let {
+            uuid,
+            session,
+            id
+        } = req.query
+
+        if ([uuid, session, id].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
+            })
+
+        let sql = `
+            SELECT
+                id
+            FROM
+                path_data
+            WHERE id > ?
+            LIMIT 1
+        `
+
+        let rows = await db.query(sql, [id])
+
+        if (!rows)
+            return res.json({
+                ...BaseStdResponse.MISSING_FILE,
+                msg: '获取路径数据失败!'
+            })
+
+        if(rows.length === 0) 
+           return res.json({
+                ...BaseStdResponse.MISSING_FILE,
+                msg: '无未审核路径!'
+            }) 
+
+        res.json({
+            ...BaseStdResponse.OK,
+            data
+        })
+    }
+}
+
+module.exports.GetNextPath = GetNextPath

+ 7 - 1
apis/Lepao/Path/GetPathDetail.js

@@ -54,12 +54,18 @@ class GetPathDetail extends API {
 
         let rows = await db.query(sql, [id])
 
-        if (!rows || rows.length === 0)
+        if (!rows)
             return res.json({
                 ...BaseStdResponse.MISSING_FILE,
                 msg: '获取路径数据失败!'
             })
 
+        if(rows.length === 0) 
+           return res.json({
+                ...BaseStdResponse.MISSING_FILE,
+                msg: '路径不存在或已被删除!'
+            }) 
+
         let data = rows[0]
         data.data = data.data.map(point => [point.o, point.a])