This commit is contained in:
Douglas Barone 2020-12-15 11:13:18 -04:00
parent 686e276163
commit c605734d8f

View File

@ -31,6 +31,40 @@ async function setAllDevicesAsOffline() {
})
}
async function updateDB(onlineDevices) {
for (const device of onlineDevices) {
if (!device.user)
await prisma.$executeRaw(
'UPDATE "WifiDevice" SET "userId" = null WHERE mac = $1',
device.mac
)
const user = device.user
? { connect: { sAMAccountName: device.user } }
: undefined
try {
await prisma.wifiDevice.upsert({
where: { mac: device.mac },
create: {
...device,
hostname: device.hostname || device.mac,
firstSeen: device.firstSeen || new Date(),
user
},
update: {
...device,
hostname: device.hostname || device.mac,
user
}
})
} catch (e) {
if (!['P2016'].includes(e.code))
console.log('[wifiDevice upsert error]', e)
}
}
}
async function updateDevicesInfo() {
if (working) return -1 // Debounce updates
@ -41,37 +75,7 @@ async function updateDevicesInfo() {
await setAllDevicesAsOffline()
for (const device of onlineDevices) {
if (!device.user)
await prisma.$executeRaw(
'UPDATE "WifiDevice" SET "userId" = null WHERE mac = $1',
device.mac
)
const user = device.user
? { connect: { sAMAccountName: device.user } }
: undefined
try {
await prisma.wifiDevice.upsert({
where: { mac: device.mac },
create: {
...device,
hostname: device.hostname || device.mac,
firstSeen: device.firstSeen || new Date(),
user
},
update: {
...device,
hostname: device.hostname || device.mac,
user
}
})
} catch (e) {
if (!['P2016'].includes(e.code))
console.log('[wifiDevice upsert error]', e)
}
}
await updateDB(onlineDevices)
pubsub.publish(USER_PRESENCE_UPDATED, {
userPresenceUpdated: onlineDevices.length