diff --git a/server/package.json b/server/package.json index 8202beb..3fb7dbf 100755 --- a/server/package.json +++ b/server/package.json @@ -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", diff --git a/server/src/utils/ciscoController.js b/server/src/utils/ciscoController.js index 4b53987..f888669 100644 --- a/server/src/utils/ciscoController.js +++ b/server/src/utils/ciscoController.js @@ -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) {