Added accessPoints query

This commit is contained in:
Douglas Barone 2022-03-24 13:24:58 -04:00
parent 2e5ce3f07d
commit ba47a68012
8 changed files with 33 additions and 7 deletions

View File

@ -22,6 +22,7 @@ CREATE TABLE "AccessPoint" (
"controller" TEXT,
"model" TEXT,
"ipAddress" TEXT,
"clients" INTEGER,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,

View File

@ -151,6 +151,7 @@ model AccessPoint {
controller String?
model String?
ipAddress String?
clients Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt

View File

@ -3,8 +3,13 @@ import { getAccessPoints as getCiscoAccessPoints } from './ciscoController'
import { getAccessPoints as getUnifiAccessPoints } from './unifiController'
async function getAccessPoints() {
const ciscoAccessPoints = await getCiscoAccessPoints()
const unifiAccessPoints = await getUnifiAccessPoints()
const ciscoAccessPointsPromise = getCiscoAccessPoints()
const unifiAccessPointsPromise = getUnifiAccessPoints()
const [ciscoAccessPoints, unifiAccessPoints] = await Promise.all([
ciscoAccessPointsPromise,
unifiAccessPointsPromise
])
return [...ciscoAccessPoints, ...unifiAccessPoints]
}

View File

@ -127,7 +127,7 @@ export async function getAccessPoints() {
const {
data: { Data: accessPoints }
} = await ciscoAxios.get(
`https://${process.env.CISCO_HOST}/data/ap-attributes-slot0.html?columns=28157`,
`https://${process.env.CISCO_HOST}/data/ap-attributes-slot0.html?columns=49151`,
{
cancelToken: source.token
}
@ -136,13 +136,14 @@ export async function getAccessPoints() {
clearTimeout(timeout)
const restructuredAccessPoints = accessPoints.map(
({ Nm, Mc, Md, Ut, A4 }) => ({
({ Nm, Mc, Md, Ut, A4, Cl }) => ({
mac: Mc,
hostname: Nm,
uptime: Ut.toString(),
controller: 'Cisco',
model: Md,
ipAddress: A4
ipAddress: A4,
clients: Cl
})
)

View File

@ -212,15 +212,17 @@ export async function getAccessPoints() {
const accessPoints = await unifiController.getAccessDevices('default')
const restructuredAccessPoints = accessPoints[0].map(
({ mac, model, ip, uptime, name }) => ({
({ mac, model, ip, uptime, name, num_sta }) => ({
mac,
hostname: name,
uptime: uptime?.toString(),
controller: 'UniFi',
model,
ipAddress: ip
ipAddress: ip,
clients: num_sta
})
)
unifiController.logout()
return restructuredAccessPoints

View File

@ -0,0 +1,9 @@
import prisma from '../../prisma'
export async function accessPoints() {
return prisma.accessPoint.findMany({
orderBy: {
hostname: 'asc'
}
})
}

View File

@ -1,3 +1,4 @@
import { accessPoints } from './accessPoints'
import { basicUser } from './basicUser'
import { groups } from './groups'
import { logs } from './logs'
@ -11,6 +12,7 @@ import { wifiDevices } from './wifiDevices'
import { wifiUsers } from './wifiUsers'
const Query = {
accessPoints,
basicUser,
groups,
logs,

View File

@ -294,6 +294,11 @@ const typeDefs = gql`
name: String
local: String
notes: String
uptime: String
controller: String
model: String
ipAddress: String
createdAt: String
updatedAt: String
WifiDevices: [WifiDevice]