const API = require("../../lib/API"); const db = require("../../plugin/DataBase/db"); const AccessControl = require("../../lib/AccessControl"); const { BaseStdResponse } = require("../../BaseStdResponse"); class IndexData extends API { constructor() { super(); this.setPath('/Admin/IndexData') 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, endpoint: 1513126 }) } // 检查 session if (!await AccessControl.checkSession(uuid, session)) return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED }) let sql = ` SELECT (SELECT COUNT(*) FROM article) AS article_count, (SELECT COUNT(*) FROM users) AS users_count, (SELECT SUM(views) FROM article) AS article_views ` try { let r = await db.query(sql) if (!r) { return res.json({ ...BaseStdResponse.DATABASE_ERR }) } let { article_count, users_count, article_views } = r[0] res.json({ ...BaseStdResponse.OK, data: { article_count, users_count, article_views } }) } catch (err) { return res.json({ ...BaseStdResponse.ERR }) } } } module.exports.IndexData = IndexData;