diff --git a/server/src/cronTasks.js b/server/src/cronTasks.js index 73631e4..1b7b116 100644 --- a/server/src/cronTasks.js +++ b/server/src/cronTasks.js @@ -1,5 +1,5 @@ import cron from 'node-cron' -import { updateDevicesInfo } from './lib/wifiUtils' +import { updateDevicesInfo } from './lib/wifiDevices' import { User } from './classes/User' import { format } from 'date-fns' import oui from 'oui' diff --git a/server/src/lib/wifiUtils.js b/server/src/lib/wifiDevices.js similarity index 77% rename from server/src/lib/wifiUtils.js rename to server/src/lib/wifiDevices.js index 39c14cc..8eb76f1 100644 --- a/server/src/lib/wifiUtils.js +++ b/server/src/lib/wifiDevices.js @@ -9,27 +9,37 @@ const DEBOUNCE_TIME_MS = 10000 let working = false +async function getOnlineDevices() { + const onlineUnifiDevicesPromise = getOnlineUnifiDevices() + const onlineCiscoDevicesPromise = getOnlineCiscoDevices() + + const [onlineUnifiDevices, onlineCiscoDevices] = await Promise.all([ + onlineUnifiDevicesPromise, + onlineCiscoDevicesPromise + ]) + + const onlineDevices = [...onlineUnifiDevices, ...onlineCiscoDevices] + + return onlineDevices +} + +async function setAllDevicesAsOffline() { + await prisma.wifiDevice.updateMany({ + data: { + status: 'OFFLINE' + } + }) +} + async function updateDevicesInfo() { if (working) return -1 // Debounce updates working = true - const onlineUnifiDevicesPromise = getOnlineUnifiDevices() - const onlineCiscoDevicesPromise = getOnlineCiscoDevices() - try { - const [onlineUnifiDevices, onlineCiscoDevices] = await Promise.all([ - onlineUnifiDevicesPromise, - onlineCiscoDevicesPromise - ]) + const onlineDevices = await getOnlineDevices() - await prisma.wifiDevice.updateMany({ - data: { - status: 'OFFLINE' - } - }) - - const onlineDevices = [...onlineUnifiDevices, ...onlineCiscoDevices] + await setAllDevicesAsOffline() for (const device of onlineDevices) { if (!device.user) diff --git a/server/src/resolvers/Mutation.js b/server/src/resolvers/Mutation.js index 6429a5a..3982dd3 100755 --- a/server/src/resolvers/Mutation.js +++ b/server/src/resolvers/Mutation.js @@ -2,7 +2,7 @@ import { replacePassword } from '../lib/activedirectory/passwordUtils' import { User } from '../classes/User' import { ResetToken } from '../classes/ResetToken' -import { updateDevicesInfo } from '../lib/wifiUtils' +import { updateDevicesInfo } from '../lib/wifiDevices' import { updateUserIdMappings } from '../lib/paloalto' const Mutation = {