CheckClientVersion.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const API = require("../../lib/API");
  2. const { BaseStdResponse } = require("../../BaseStdResponse");
  3. const VersionService = require("../../lib/DownloadVersionService");
  4. class CheckClientVersion extends API {
  5. constructor() {
  6. super();
  7. this.setPath('/Public/CheckClientVersion');
  8. this.setMethod('GET');
  9. this.noEncrypt();
  10. }
  11. async onRequest(req, res) {
  12. const clientType = VersionService.normalizeClientType(req.query.client_type || req.query.clientType || req.query.platform);
  13. const versionName = req.query.version || req.query.version_name || req.query.edition_name || "";
  14. const versionCode = req.query.version_code || req.query.versionCode || req.query.edition_number || 0;
  15. if (!clientType)
  16. return res.json({ ...BaseStdResponse.MISSING_PARAMETER, msg: 'client_type不能为空' });
  17. try {
  18. const latest = await VersionService.getMatchedVersion(clientType, {
  19. version_name: versionName,
  20. version_code: versionCode
  21. });
  22. return res.json({
  23. ...BaseStdResponse.OK,
  24. data: VersionService.toPublicPayload(latest, {
  25. version_name: versionName,
  26. version_code: versionCode
  27. })
  28. });
  29. } catch (err) {
  30. this.logger.error(`检查客户端版本失败:${err.stack || err}`);
  31. return res.json({ ...BaseStdResponse.ERR, msg: '检查客户端版本失败' });
  32. }
  33. }
  34. }
  35. module.exports.CheckClientVersion = CheckClientVersion;