const API = require("../../../../lib/API"); const AccessControl = require("../../../../lib/AccessControl"); const { BaseStdResponse } = require("../../../../BaseStdResponse"); const VersionService = require("../../../../lib/DownloadVersionService"); class AdminDownloadVersionList extends API { constructor() { super(); this.setPath('/Admin/DownloadVersion/List'); this.setMethod('GET'); } async onRequest(req, res) { const { uuid, session, client_type } = req.query; if ([uuid, session].some(v => v === '' || v === null || v === undefined)) return res.json({ ...BaseStdResponse.MISSING_PARAMETER }); if (!await AccessControl.checkSession(uuid, session)) return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED }); const permission = await AccessControl.getPermission(uuid); if (!permission.includes('admin') && !permission.includes('service')) return res.json({ ...BaseStdResponse.PERMISSION_DENIED }); try { const rows = await VersionService.listVersions(client_type || ""); return res.json({ ...BaseStdResponse.OK, data: rows || [] }); } catch (err) { this.logger.error(`获取下载版本列表失败:${err.stack || err}`); return res.json({ ...BaseStdResponse.ERR, msg: '获取下载版本列表失败' }); } } } module.exports.AdminDownloadVersionList = AdminDownloadVersionList;