diff --git a/server/src/resolvers/Query/userPresence.js b/server/src/resolvers/Query/userPresence.js index 5d86974..e9d5c11 100644 --- a/server/src/resolvers/Query/userPresence.js +++ b/server/src/resolvers/Query/userPresence.js @@ -1,10 +1,10 @@ import prisma from '../../prisma' import { getSubnetInfo } from '../../utils/subnetInfo' -export async function userPresence(_, { search }) { +export async function userPresence(_, { search, onlyServants }) { if (!search) search = '' - const usersWithWifiDevices = await prisma.user.findMany({ + let usersWithWifiDevices = await prisma.user.findMany({ where: { wifiDevices: { some: { lastSeen: { not: null } } } }, @@ -16,6 +16,11 @@ export async function userPresence(_, { search }) { } }) + if (onlyServants) + usersWithWifiDevices = usersWithWifiDevices.filter( + ({ extensionAttribute2 }) => extensionAttribute2 == 'Técnico-administrativo' || extensionAttribute2 == 'Docente' + ) + search = search.toLowerCase().trim() const filteredUsers = search @@ -60,7 +65,7 @@ export async function userPresence(_, { search }) { return 0 }) - return sortedUsers + const userPresence = sortedUsers .map(userPresence => ({ id: userPresence.id, displayName: userPresence.displayName, @@ -72,4 +77,6 @@ export async function userPresence(_, { search }) { campus: getSubnetInfo(userPresence.wifiDevices[0].accessPoint?.ip).shortName })) .slice(0, 200) + + return userPresence } diff --git a/server/src/typeDefs.js b/server/src/typeDefs.js index e0c0778..81aa955 100644 --- a/server/src/typeDefs.js +++ b/server/src/typeDefs.js @@ -29,7 +29,7 @@ const typeDefs = gql` stats: Stats! "Users who has some device currently connected to Wi-Fi" - userPresence(search: String = ""): [UserPresence!] @auth(roles: ["watcher"]) + userPresence(search: String = "", onlyServants: Boolean = false): [UserPresence!] @auth(roles: ["watcher"]) "Devices that uses the Wi-Fi" wifiDevices( diff --git a/web/src/views/UserPresence.vue b/web/src/views/UserPresence.vue index 0fe8132..0d60f8c 100644 --- a/web/src/views/UserPresence.vue +++ b/web/src/views/UserPresence.vue @@ -1,57 +1,25 @@