Resources.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const API = require('../../../../lib/API.js')
  2. const { BaseStdResponse } = require('../../../../BaseStdResponse.js')
  3. const AccessControl = require('../../../../lib/AccessControl.js')
  4. const QgProxyManager = require('../../../../lib/Lepao/QgProxyManager')
  5. /**
  6. * 青果通道提取 [查询资源地区](https://www.qg.net/doc/1850.html)(GET /resources)
  7. */
  8. class AdminLepaoProxyResources extends API {
  9. constructor() {
  10. super()
  11. this.setPath('/Admin/Lepao/Proxy/Resources')
  12. this.setMethod('GET')
  13. }
  14. async onRequest(req, res) {
  15. const { uuid, session } = req.query
  16. if ([uuid, session].some(v => v === '' || v == null))
  17. return res.json({ ...BaseStdResponse.MISSING_PARAMETER })
  18. if (!await AccessControl.checkSession(uuid, session))
  19. return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED })
  20. const permission = await AccessControl.getPermission(uuid)
  21. if (!permission.includes('admin') && !permission.includes('service'))
  22. return res.json({ ...BaseStdResponse.PERMISSION_DENIED })
  23. if (!QgProxyManager.hasExtractCredentials()) {
  24. return res.json({ ...BaseStdResponse.ERR, msg: '未在后端 config 配置 qgChannelProxy.extractKey,无法查询资源' })
  25. }
  26. try {
  27. const list = await QgProxyManager.fetchResourceAreas()
  28. return res.json({
  29. ...BaseStdResponse.OK,
  30. data: list || []
  31. })
  32. } catch (e) {
  33. this.logger?.error?.(`AdminLepaoProxyResources: ${e.stack || e}`)
  34. return res.json({ ...BaseStdResponse.ERR, msg: e.message || '查询青果资源失败' })
  35. }
  36. }
  37. }
  38. module.exports.AdminLepaoProxyResources = AdminLepaoProxyResources