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, "controller" TEXT,
"model" TEXT, "model" TEXT,
"ipAddress" TEXT, "ipAddress" TEXT,
"clients" INTEGER,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL, "updatedAt" TIMESTAMP(3) NOT NULL,

View File

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

View File

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

View File

@ -127,7 +127,7 @@ export async function getAccessPoints() {
const { const {
data: { Data: accessPoints } data: { Data: accessPoints }
} = await ciscoAxios.get( } = 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 cancelToken: source.token
} }
@ -136,13 +136,14 @@ export async function getAccessPoints() {
clearTimeout(timeout) clearTimeout(timeout)
const restructuredAccessPoints = accessPoints.map( const restructuredAccessPoints = accessPoints.map(
({ Nm, Mc, Md, Ut, A4 }) => ({ ({ Nm, Mc, Md, Ut, A4, Cl }) => ({
mac: Mc, mac: Mc,
hostname: Nm, hostname: Nm,
uptime: Ut.toString(), uptime: Ut.toString(),
controller: 'Cisco', controller: 'Cisco',
model: Md, 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 accessPoints = await unifiController.getAccessDevices('default')
const restructuredAccessPoints = accessPoints[0].map( const restructuredAccessPoints = accessPoints[0].map(
({ mac, model, ip, uptime, name }) => ({ ({ mac, model, ip, uptime, name, num_sta }) => ({
mac, mac,
hostname: name, hostname: name,
uptime: uptime?.toString(), uptime: uptime?.toString(),
controller: 'UniFi', controller: 'UniFi',
model, model,
ipAddress: ip ipAddress: ip,
clients: num_sta
}) })
) )
unifiController.logout() unifiController.logout()
return restructuredAccessPoints 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 { basicUser } from './basicUser'
import { groups } from './groups' import { groups } from './groups'
import { logs } from './logs' import { logs } from './logs'
@ -11,6 +12,7 @@ import { wifiDevices } from './wifiDevices'
import { wifiUsers } from './wifiUsers' import { wifiUsers } from './wifiUsers'
const Query = { const Query = {
accessPoints,
basicUser, basicUser,
groups, groups,
logs, logs,

View File

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