Order by online devices

This commit is contained in:
Douglas Barone 2022-10-20 14:46:08 -04:00
parent 516c207107
commit 65db6b57ba

View File

@ -34,17 +34,29 @@ export async function wifiUsers(parent, { take = 10, skip = 0, search }) {
]
}
return {
data: prisma.user.findMany({
where,
include: {
wifiDevices: true
},
orderBy: [{ wifiDevices: { _count: 'desc' } }, { displayName: 'asc' }],
take,
skip
}),
const wifiUsers = await prisma.user.findMany({
where,
include: {
wifiDevices: true
},
orderBy: [{ wifiDevices: { _count: 'desc' } }, { displayName: 'asc' }]
})
total: prisma.user.count({ where })
// Order by number of online devices
const sortedWifiUsers = wifiUsers.sort((a, b) => {
const aOnline = a.wifiDevices.filter(d => d.status === 'ONLINE').length
const bOnline = b.wifiDevices.filter(d => d.status === 'ONLINE').length
return bOnline - aOnline
})
// Paginate the results
const data = sortedWifiUsers.slice(skip, skip + take)
const total = await prisma.user.count({ where })
return {
data,
total
}
}