SetGlobal.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. const API = require('../../../../lib/API')
  2. const AccessControl = require('../../../../lib/AccessControl')
  3. const { BaseStdResponse } = require('../../../../BaseStdResponse')
  4. const { patchGlobal } = require('../../../../lib/Lepao/lepaoProxyPoolService')
  5. class SetGlobal extends API {
  6. constructor() {
  7. super()
  8. this.setPath('/Admin/Lepao/Proxy/SetGlobal')
  9. this.setMethod('post')
  10. }
  11. async onRequest(req, res) {
  12. const { uuid, session, random_proxy_enabled, import_url, probe_target_url, check_timeout_ms, check_concurrency } =
  13. req.body
  14. if ([uuid, session].some((v) => v === '' || v === null || v === undefined)) {
  15. return res.json({ ...BaseStdResponse.MISSING_PARAMETER })
  16. }
  17. if (!await AccessControl.checkSession(uuid, session)) {
  18. return res.status(401).json({ ...BaseStdResponse.ACCESS_DENIED })
  19. }
  20. const permission = await AccessControl.getPermission(uuid)
  21. if (!permission.includes('admin') && !permission.includes('service')) {
  22. return res.json({ ...BaseStdResponse.PERMISSION_DENIED })
  23. }
  24. const patch = {}
  25. if (random_proxy_enabled !== undefined) patch.random_proxy_enabled = random_proxy_enabled
  26. if (import_url !== undefined) patch.import_url = import_url
  27. if (probe_target_url !== undefined) patch.probe_target_url = probe_target_url
  28. if (check_timeout_ms !== undefined) patch.check_timeout_ms = check_timeout_ms
  29. if (check_concurrency !== undefined) patch.check_concurrency = check_concurrency
  30. try {
  31. const r = await patchGlobal(patch)
  32. return res.json({ ...BaseStdResponse.OK, data: r })
  33. } catch (e) {
  34. return res.json({ ...BaseStdResponse.ERR, msg: e.message || '保存失败' })
  35. }
  36. }
  37. }
  38. module.exports.SetGlobal = SetGlobal