Order by online devices
This commit is contained in:
parent
516c207107
commit
65db6b57ba
|
@ -34,17 +34,29 @@ export async function wifiUsers(parent, { take = 10, skip = 0, search }) {
|
|||
]
|
||||
}
|
||||
|
||||
return {
|
||||
data: prisma.user.findMany({
|
||||
const wifiUsers = await prisma.user.findMany({
|
||||
where,
|
||||
include: {
|
||||
wifiDevices: true
|
||||
},
|
||||
orderBy: [{ wifiDevices: { _count: 'desc' } }, { displayName: 'asc' }],
|
||||
take,
|
||||
skip
|
||||
}),
|
||||
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
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user