diff --git a/server/src/resolvers/Query/userPresence.js b/server/src/resolvers/Query/userPresence.js index da40cc4..5d86974 100644 --- a/server/src/resolvers/Query/userPresence.js +++ b/server/src/resolvers/Query/userPresence.js @@ -1,4 +1,5 @@ import prisma from '../../prisma' +import { getSubnetInfo } from '../../utils/subnetInfo' export async function userPresence(_, { search }) { if (!search) search = '' @@ -67,7 +68,8 @@ export async function userPresence(_, { search }) { lastSeen: userPresence.wifiDevices[0].lastSeen, status: userPresence.wifiDevices[0].status, apName: userPresence.wifiDevices[0].accessPoint?.name || userPresence.wifiDevices[0].apName || userPresence.wifiDevices[0].accessPoint?.hostname, - local: userPresence.wifiDevices[0].accessPoint?.local + local: userPresence.wifiDevices[0].accessPoint?.local, + campus: getSubnetInfo(userPresence.wifiDevices[0].accessPoint?.ip).shortName })) .slice(0, 200) } diff --git a/server/src/typeDefs.js b/server/src/typeDefs.js index 5bc43cb..e5e572a 100644 --- a/server/src/typeDefs.js +++ b/server/src/typeDefs.js @@ -246,6 +246,7 @@ const typeDefs = gql` status: Status! apName: String! local: String + campus: String } "The status of a Device" diff --git a/server/src/utils/subnetInfo.js b/server/src/utils/subnetInfo.js index 9e6d7f2..1145bc3 100644 --- a/server/src/utils/subnetInfo.js +++ b/server/src/utils/subnetInfo.js @@ -1,4 +1,5 @@ import ip from 'ip' +import { isIPv4 } from 'net' const subNetsInfo = [ { @@ -96,9 +97,9 @@ export const subNets = subNetsInfo.map(subNetInfo => ({ })) export function getSubnetInfo(ip) { - const subnet = subNets.find(subnet => subnet.contains(ip)) - - - return subnet + if (isIPv4(ip)) return subNets.find(subnet => subnet.contains(ip)) + else return { + shortName: 'XX', + name: 'Desconhecido' + } } - diff --git a/web/src/views/UserPresence.vue b/web/src/views/UserPresence.vue index a7c390e..8222327 100644 --- a/web/src/views/UserPresence.vue +++ b/web/src/views/UserPresence.vue @@ -113,6 +113,7 @@ bottom offset-x="18px" offset-y="18px" + :content="userPresence.campus" > @@ -125,7 +126,7 @@