Added accessPoints query
This commit is contained in:
parent
2e5ce3f07d
commit
ba47a68012
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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]
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
9
server/src/resolvers/Query/accessPoints.js
Normal file
9
server/src/resolvers/Query/accessPoints.js
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
import prisma from '../../prisma'
|
||||||
|
|
||||||
|
export async function accessPoints() {
|
||||||
|
return prisma.accessPoint.findMany({
|
||||||
|
orderBy: {
|
||||||
|
hostname: 'asc'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
|
@ -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,
|
||||||
|
|
|
@ -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]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user