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 @@
- On-line
+ On-line
@@ -301,6 +302,7 @@ export default {
status
apName
local
+ campus
}
}
`,