Added pubsub

This commit is contained in:
Douglas Barone 2022-03-24 15:17:48 -04:00
parent 1d491a8a4b
commit 8d8cdd6486
3 changed files with 38 additions and 1 deletions

View File

@ -1,5 +1,7 @@
import prisma from '../prisma' import prisma from '../prisma'
import { ACCESS_POINTS_UPDATED, pubsub } from '../pubsub'
import { getAccessPoints as getCiscoAccessPoints } from './ciscoController' import { getAccessPoints as getCiscoAccessPoints } from './ciscoController'
import { logInfo } from './logger'
import { getAccessPoints as getUnifiAccessPoints } from './unifiController' import { getAccessPoints as getUnifiAccessPoints } from './unifiController'
async function getAccessPoints() { async function getAccessPoints() {
@ -25,7 +27,14 @@ async function updateDB(accessPoints) {
} }
export async function updateAccessPoints() { export async function updateAccessPoints() {
logInfo({
tags: ['accessPoints', 'updateAccessPoints'],
message: 'Atualizando informações dos APs'
})
const accessPoints = await getAccessPoints() const accessPoints = await getAccessPoints()
await updateDB(accessPoints) await updateDB(accessPoints)
pubsub.publish(ACCESS_POINTS_UPDATED, { accessPointsUpdated: accessPoints })
} }

View File

@ -3,7 +3,14 @@ import { PubSub } from 'apollo-server'
const USER_PRESENCE_UPDATED = 'USER_PRESENCE_UPDATED' const USER_PRESENCE_UPDATED = 'USER_PRESENCE_UPDATED'
const AUTH_UPDATED = 'AUTH_UPDATED' const AUTH_UPDATED = 'AUTH_UPDATED'
const LOG_UPDATED = 'LOG_UPDATED' const LOG_UPDATED = 'LOG_UPDATED'
const ACCESS_POINTS_UPDATED = 'ACCESS_POINTS_UPDATED'
const pubsub = new PubSub() 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
}

View File

@ -1,3 +1,4 @@
import { updateAccessPoints } from './lib/accessPoints'
import { logError, logInfo } from './lib/logger' import { logError, logInfo } from './lib/logger'
import { updateUserIdMappings } from './lib/paloalto' import { updateUserIdMappings } from './lib/paloalto'
import { updateDevicesInfo } from './lib/wifiDevices' 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() { function runTasks() {
logInfo({ logInfo({
tags: ['task'], tags: ['task'],
@ -31,6 +51,7 @@ function runTasks() {
}) })
updateDevicesTask() updateDevicesTask()
updateAccessPointsTask()
} }
export { runTasks } export { runTasks }