diff --git a/server/src/lib/accessPoints.js b/server/src/lib/accessPoints.js index 0fba8c3..6ea4a04 100644 --- a/server/src/lib/accessPoints.js +++ b/server/src/lib/accessPoints.js @@ -1,5 +1,7 @@ import prisma from '../prisma' +import { ACCESS_POINTS_UPDATED, pubsub } from '../pubsub' import { getAccessPoints as getCiscoAccessPoints } from './ciscoController' +import { logInfo } from './logger' import { getAccessPoints as getUnifiAccessPoints } from './unifiController' async function getAccessPoints() { @@ -25,7 +27,14 @@ async function updateDB(accessPoints) { } export async function updateAccessPoints() { + logInfo({ + tags: ['accessPoints', 'updateAccessPoints'], + message: 'Atualizando informações dos APs' + }) + const accessPoints = await getAccessPoints() await updateDB(accessPoints) + + pubsub.publish(ACCESS_POINTS_UPDATED, { accessPointsUpdated: accessPoints }) } diff --git a/server/src/pubsub.js b/server/src/pubsub.js index dc093dd..a2e4593 100644 --- a/server/src/pubsub.js +++ b/server/src/pubsub.js @@ -3,7 +3,14 @@ import { PubSub } from 'apollo-server' const USER_PRESENCE_UPDATED = 'USER_PRESENCE_UPDATED' const AUTH_UPDATED = 'AUTH_UPDATED' const LOG_UPDATED = 'LOG_UPDATED' +const ACCESS_POINTS_UPDATED = 'ACCESS_POINTS_UPDATED' const pubsub = new PubSub() -export { pubsub, USER_PRESENCE_UPDATED, AUTH_UPDATED, LOG_UPDATED } +export { + pubsub, + USER_PRESENCE_UPDATED, + AUTH_UPDATED, + LOG_UPDATED, + ACCESS_POINTS_UPDATED +} diff --git a/server/src/tasks.js b/server/src/tasks.js index 645d62a..e54ebb4 100644 --- a/server/src/tasks.js +++ b/server/src/tasks.js @@ -1,3 +1,4 @@ +import { updateAccessPoints } from './lib/accessPoints' import { logError, logInfo } from './lib/logger' import { updateUserIdMappings } from './lib/paloalto' import { updateDevicesInfo } from './lib/wifiDevices' @@ -24,6 +25,25 @@ async function updateDevicesTask() { } } +async function updateAccessPointsTask() { + logInfo({ + tags: ['task', 'accessPoints'], + message: 'Atualização de Access Points iniciou.' + }) + + try { + await updateAccessPoints() + } catch (e) { + logError({ + tags: ['task', 'accessPoints'], + message: `Erro executando tarefa: ${e}`, + data: e + }) + } finally { + setTimeout(updateAccessPointsTask, SLEEP_IN_MILLISECONDS) + } +} + function runTasks() { logInfo({ tags: ['task'], @@ -31,6 +51,7 @@ function runTasks() { }) updateDevicesTask() + updateAccessPointsTask() } export { runTasks }