Added subnetInfo

This commit is contained in:
Douglas Barone 2022-04-14 15:15:02 -04:00
parent 995739e611
commit ee7714c6da
4 changed files with 13 additions and 7 deletions

View File

@ -1,4 +1,5 @@
import prisma from '../../prisma' import prisma from '../../prisma'
import { getSubnetInfo } from '../../utils/subnetInfo'
export async function userPresence(_, { search }) { export async function userPresence(_, { search }) {
if (!search) search = '' if (!search) search = ''
@ -67,7 +68,8 @@ export async function userPresence(_, { search }) {
lastSeen: userPresence.wifiDevices[0].lastSeen, lastSeen: userPresence.wifiDevices[0].lastSeen,
status: userPresence.wifiDevices[0].status, status: userPresence.wifiDevices[0].status,
apName: userPresence.wifiDevices[0].accessPoint?.name || userPresence.wifiDevices[0].apName || userPresence.wifiDevices[0].accessPoint?.hostname, 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) .slice(0, 200)
} }

View File

@ -246,6 +246,7 @@ const typeDefs = gql`
status: Status! status: Status!
apName: String! apName: String!
local: String local: String
campus: String
} }
"The status of a Device" "The status of a Device"

View File

@ -1,4 +1,5 @@
import ip from 'ip' import ip from 'ip'
import { isIPv4 } from 'net'
const subNetsInfo = [ const subNetsInfo = [
{ {
@ -96,9 +97,9 @@ export const subNets = subNetsInfo.map(subNetInfo => ({
})) }))
export function getSubnetInfo(ip) { export function getSubnetInfo(ip) {
const subnet = subNets.find(subnet => subnet.contains(ip)) if (isIPv4(ip)) return subNets.find(subnet => subnet.contains(ip))
else return {
shortName: 'XX',
return subnet name: 'Desconhecido'
}
} }

View File

@ -113,6 +113,7 @@
bottom bottom
offset-x="18px" offset-x="18px"
offset-y="18px" offset-y="18px"
:content="userPresence.campus"
> >
<Avatar :src="userPresence.thumbnailPhoto" size="52px" /> <Avatar :src="userPresence.thumbnailPhoto" size="52px" />
</v-badge> </v-badge>
@ -125,7 +126,7 @@
<template v-if="userPresence.status == 'ONLINE'"> <template v-if="userPresence.status == 'ONLINE'">
<v-list-item-subtitle> <v-list-item-subtitle>
<span class="font-weight-medium">On-line</span> <span class="font-weight-medium mr-1">On-line</span>
</v-list-item-subtitle> </v-list-item-subtitle>
<v-list-item-subtitle> <v-list-item-subtitle>
<span v-if="userPresence.local" class="font-weight-medium"> <span v-if="userPresence.local" class="font-weight-medium">
@ -301,6 +302,7 @@ export default {
status status
apName apName
local local
campus
} }
} }
`, `,