| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- const API = require('../../../../lib/API')
- const AccessControl = require('../../../../lib/AccessControl')
- const { BaseStdResponse } = require('../../../../BaseStdResponse')
- const { batchCheckProxies } = require('../../../../lib/Lepao/lepaoProxyPoolService')
- class BatchCheck extends API {
- constructor() {
- super()
- this.setPath('/Admin/Lepao/Proxy/BatchCheck')
- this.setMethod('post')
- }
- async onRequest(req, res) {
- const { uuid, session, ids } = req.body
- 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 })
- }
- let idList = ids
- if (idList != null && !Array.isArray(idList)) {
- return res.json({ ...BaseStdResponse.ERR, msg: 'ids 须为数组' })
- }
- if (Array.isArray(idList)) {
- idList = idList.map((x) => Number(x)).filter((n) => Number.isFinite(n) && n > 0)
- }
- try {
- const stats = await batchCheckProxies(idList?.length ? idList : null, { logger: this.logger })
- return res.json({ ...BaseStdResponse.OK, data: stats })
- } catch (e) {
- return res.json({ ...BaseStdResponse.ERR, msg: e.message || '检测失败' })
- }
- }
- }
- module.exports.BatchCheck = BatchCheck
|