Replace Puppeteer method for a configured axios

This commit is contained in:
Douglas Barone 2020-11-20 09:50:57 -04:00
parent f8df9a96b2
commit 639961a73d
2 changed files with 24 additions and 25 deletions

View File

@ -4,7 +4,7 @@
"description": "Servidor GraphQL para concentrar as informações do IFMS",
"main": "src/index.js",
"scripts": {
"start": "node dist/index.js",
"start": "node --tls-min-v1.0 dist/index.js",
"dev": "nodemon --ext js,graphql src/index.js --exec babel-node",
"prisma-deploy": "prisma migrate up --experimental",
"prisma-generate": "prisma generate",

View File

@ -1,39 +1,38 @@
import puppeteer from 'puppeteer'
import axios from 'axios'
import https from 'https'
const httpsAgent = new https.Agent({
rejectUnauthorized: false,
ciphers: 'AES256-SHA' // That's necessary to connect to a TLS 1.0 server. Run node with --tls-min-v1.0
})
const configuredClient = axios.create({
httpsAgent: httpsAgent,
auth: {
username: process.env.CISCO_USER,
password: process.env.CISCO_PASSWORD
}
})
async function getDevices() {
const take = 50
let skip = 0
let currentPage = 1
let page = 1
let response = null
try {
const browser = await puppeteer.launch({
ignoreHTTPSErrors: true
})
const controllerPage = await browser.newPage()
await controllerPage.authenticate({
username: process.env.CISCO_USER,
password: process.env.CISCO_PASSWORD
})
let devices = []
let result = []
do {
// TODO: improve url params
const url = `https://${process.env.CISCO_HOST}/data/client-table.html?columns=524287&take=${take}&skip=${skip}&page=${currentPage}&pageSize=50&sort[0][field]=ST&sort[0][dir]=desc`
let response = await controllerPage.goto(url)
let url = `https://${process.env.CISCO_HOST}/data/client-table.html?columns=524287&take=${take}&skip=${skip}&page=${page}&pageSize=50&sort[0][field]=ST&sort[0][dir]=desc`
result = await response.json()
response = await configuredClient.get(url)
devices = devices.concat(response.data.data)
skip += take
currentPage++
devices = devices.concat(result.data)
} while (result.total > skip)
browser.close()
page++
} while (response.data.total > skip)
return devices
} catch (e) {