Refactor
This commit is contained in:
parent
686e276163
commit
c605734d8f
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user