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 {
|
const wifiUsers = await prisma.user.findMany({
|
||||||
data: prisma.user.findMany({
|
where,
|
||||||
where,
|
include: {
|
||||||
include: {
|
wifiDevices: true
|
||||||
wifiDevices: true
|
},
|
||||||
},
|
orderBy: [{ wifiDevices: { _count: 'desc' } }, { displayName: 'asc' }]
|
||||||
orderBy: [{ wifiDevices: { _count: 'desc' } }, { displayName: 'asc' }],
|
})
|
||||||
take,
|
|
||||||
skip
|
|
||||||
}),
|
|
||||||
|
|
||||||
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