Sort userPresence by lastSeen timestamp and display name

This commit is contained in:
Douglas Barone 2024-01-19 21:22:06 -04:00
parent be7262bbdf
commit 15b8d248a8

View File

@ -11,7 +11,8 @@ export async function userPresence(_, { search, onlyServants }) {
orderBy: { displayName: 'asc' }, orderBy: { displayName: 'asc' },
include: { include: {
wifiDevices: { wifiDevices: {
include: { accessPoint: true } include: { accessPoint: true },
orderBy: { lastSeen: 'desc' }
} }
} }
}) })
@ -49,28 +50,26 @@ export async function userPresence(_, { search, onlyServants }) {
} }
} }
const sortedUsers = filteredUsers const sortedUsers = filteredUsers.sort((a, b) => {
.sort((a, b) => a.displayName.localeCompare(b.displayName)) const [aStatus, bStatus] = [
.sort((a, b) => { a.wifiDevices[0].status,
const [aStatus, bStatus] = [ b.wifiDevices[0].status
a.wifiDevices[0].status, ]
b.wifiDevices[0].status if (
] (aStatus == 'ONLINE' && bStatus == 'RECENT') ||
if ( (aStatus == 'ONLINE' && bStatus == 'OFFLINE') ||
(aStatus == 'ONLINE' && bStatus == 'RECENT') || (aStatus == 'RECENT' && bStatus == 'OFFLINE')
(aStatus == 'ONLINE' && bStatus == 'OFFLINE') || )
(aStatus == 'RECENT' && bStatus == 'OFFLINE') return -1
) if (
return -1 (bStatus == 'ONLINE' && aStatus == 'RECENT') ||
if ( (bStatus == 'ONLINE' && aStatus == 'OFFLINE') ||
(bStatus == 'ONLINE' && aStatus == 'RECENT') || (bStatus == 'RECENT' && aStatus == 'OFFLINE')
(bStatus == 'ONLINE' && aStatus == 'OFFLINE') || )
(bStatus == 'RECENT' && aStatus == 'OFFLINE') return 1
)
return 1
return 0 return a.displayName.localeCompare(b.displayName)
}) })
const userPresence = sortedUsers const userPresence = sortedUsers
.map(userPresence => ({ .map(userPresence => ({