Added multiple search terms capability

This commit is contained in:
Douglas Barone 2022-05-04 13:56:11 +00:00
parent 1ac36f1b7d
commit a4d2bde654

View File

@ -21,28 +21,36 @@ export async function userPresence(_, { search, onlyServants }) {
({ extensionAttribute2 }) => extensionAttribute2 == 'Técnico-administrativo' || extensionAttribute2 == 'Docente'
)
const searchTerms = search.split(' ')
let filteredUsers = usersWithWifiDevices
if (search) {
search = search.toLowerCase().trim()
const filteredUsers = search
? usersWithWifiDevices.filter(
for (const term of searchTerms) {
filteredUsers = filteredUsers.filter(
user =>
Object.keys(user).some(
key => typeof user[key] == 'string' && user[key].contains(search)
key => typeof user[key] == 'string' && user[key].contains(term)
) ||
user.wifiDevices?.some(
device =>
device.status != 'OFFLINE' &&
(
device.ip?.startsWith(search) ||
device.apName?.contains(search) ||
device.essid?.contains(search) ||
device.hostname?.contains(search) ||
device.accessPoint?.name?.contains(search) ||
device.accessPoint?.local?.contains(search)
device.ip?.startsWith(term) ||
device.apName?.contains(term) ||
device.essid?.contains(term) ||
device.hostname?.contains(term) ||
device.accessPoint?.name?.contains(term) ||
device.accessPoint?.local?.contains(term)
)
)
)
: usersWithWifiDevices
}
}
const sortedUsers = filteredUsers
.sort((a, b) => b.displayName.localeCompare(a.displayName))