IndexData.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 IndexData extends API {
  6. constructor() {
  7. super();
  8. this.setPath('/Admin/IndexData')
  9. this.setMethod('GET')
  10. }
  11. async onRequest(req, res) {
  12. let { uuid, session } = req.query
  13. if ([uuid, session].some(value => value === '' || value === null || value === undefined)) {
  14. return res.json({
  15. ...BaseStdResponse.MISSING_PARAMETER,
  16. endpoint: 1513126
  17. })
  18. }
  19. // 检查 session
  20. if (!await AccessControl.checkSession(uuid, session))
  21. return res.status(401).json({
  22. ...BaseStdResponse.ACCESS_DENIED
  23. })
  24. let sql = `
  25. SELECT
  26. (SELECT COUNT(*) FROM jw_account WHERE create_user = ?) AS accounts,
  27. (SELECT COUNT(*) FROM ic_rule) AS rules
  28. `
  29. try {
  30. let r = await db.query(sql, [uuid])
  31. if (!r) {
  32. return res.json({
  33. ...BaseStdResponse.DATABASE_ERR
  34. })
  35. }
  36. let { accounts, rules } = r[0]
  37. res.json({
  38. ...BaseStdResponse.OK,
  39. data: {
  40. accounts,
  41. rules
  42. }
  43. })
  44. } catch (err) {
  45. return res.json({
  46. ...BaseStdResponse.ERR
  47. })
  48. }
  49. }
  50. }
  51. module.exports.IndexData = IndexData;