diff --git a/server/src/lib/wifiDevices.js b/server/src/lib/wifiDevices.js index 6ceb3c0..a85c61f 100644 --- a/server/src/lib/wifiDevices.js +++ b/server/src/lib/wifiDevices.js @@ -38,14 +38,14 @@ async function getOnlineDevices() { } async function updateDevicesStatus(onlineDevices) { - const lastSeenThreshold = subMinutes(new Date(), RECENT_THRESHOLD_IN_MINUTES) + const now = new Date() + const lastSeenThreshold = subMinutes(now, RECENT_THRESHOLD_IN_MINUTES) const onlineDevicesMacs = onlineDevices.map(device => device.mac) const recent = prisma.wifiDevice.updateMany({ where: { lastSeen: { gt: lastSeenThreshold }, - status: 'ONLINE', mac: { notIn: onlineDevicesMacs } }, data: { status: 'RECENT' } @@ -54,7 +54,6 @@ async function updateDevicesStatus(onlineDevices) { const offline = prisma.wifiDevice.updateMany({ where: { lastSeen: { lte: lastSeenThreshold }, - status: { not: 'OFFLINE' }, mac: { notIn: onlineDevicesMacs } }, data: { status: 'OFFLINE' } diff --git a/server/src/resolvers/User.js b/server/src/resolvers/User.js index 73665e8..ac0e1d7 100755 --- a/server/src/resolvers/User.js +++ b/server/src/resolvers/User.js @@ -47,19 +47,21 @@ const User = { isWatcher: parent => parent.roles.includes('watcher'), - wifiDevices: (parent, data, { auth }) => { + wifiDevices: async (parent, data, { auth }) => { if ( parent.sAMAccountName !== auth.sAMAccountName && !auth.roles.includes('superAdmin') ) return [] - return prisma.wifiDevice.findMany({ + const wifiDevices = await prisma.wifiDevice.findMany({ where: { accessPointId: { not: null }, user: { id: parent.id } } }) + + return wifiDevices }, campus: parent => { diff --git a/web/src/components/dataTables/UserWifiDevicesDataTable.vue b/web/src/components/dataTables/UserWifiDevicesDataTable.vue index 9d50ce7..2556679 100644 --- a/web/src/components/dataTables/UserWifiDevicesDataTable.vue +++ b/web/src/components/dataTables/UserWifiDevicesDataTable.vue @@ -18,6 +18,9 @@ Online + + Recente + Offline