Browse Source

✨ feat: 增加用户仓库获取接口

Pchen. 2 months ago
parent
commit
67a4fd75fa
3 changed files with 50 additions and 1 deletions
  1. 3 0
      apis/GitActions/GitPull.js
  2. 1 1
      apis/Repos/GetRepoList.js
  3. 46 0
      apis/User/GetRepos.js

+ 3 - 0
apis/GitActions/GitPull.js

@@ -49,6 +49,9 @@ class GitPull extends API {
                 ...BaseStdResponse.OK
             })
 
+            const time = new Date().getTime()
+            sql = 'UPDATE repos SET update_time = ? WHERE create_user = ? AND id = ?'
+            await db.query(sql, [time, uuid, id])
         } catch (error) {
             this.logger.error('拉取更新失败!' + error.stack)
             return res.json({

+ 1 - 1
apis/Repos/GetRepoList.js

@@ -31,7 +31,7 @@ class GetRepoList extends API {
                 ...BaseStdResponse.ACCESS_DENIED
             })
 
-        let sql = 'SELECT id, name, url, create_time, state, logo, update_time FROM repos WHERE create_user = ?'
+        let sql = 'SELECT id, name, url, create_time, state, logo, update_time FROM repos WHERE create_user = ? ORDER BY update_time DESC'
         let params = [uuid]
 
         if ((keyword ?? '').trim() !== '') {

+ 46 - 0
apis/User/GetRepos.js

@@ -0,0 +1,46 @@
+const API = require("../../lib/API")
+const db = require("../../plugin/DataBase/db")
+const AccessControl = require("../../lib/AccessControl")
+const { BaseStdResponse } = require("../../BaseStdResponse")
+class GetRepos extends API {
+    constructor() {
+        super()
+
+        this.setPath('/User/GetRepos')
+        this.setMethod('GET')
+    }
+
+    async onRequest(req, res) {
+        let {
+            uuid,
+            session
+        } = req.query
+
+        if ([uuid, session].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 sql = 'SELECT id, name, url, logo, create_time, update_time FROM repos WHERE create_user = ? AND state = 1 ORDER BY update_time DESC LIMIT 6'
+        let rows = await db.query(sql, [uuid])
+
+        if (!rows)
+            return res.json({
+                ...BaseStdResponse.ERR,
+                msg: '数据库错误!'
+            })
+
+        res.json({
+            ...BaseStdResponse.OK,
+            data: rows
+        })
+    }
+}
+
+module.exports.GetRepos = GetRepos