Refactoring

This commit is contained in:
Douglas Barone 2022-03-24 14:26:57 -04:00
parent ba47a68012
commit 290fc7e597
11 changed files with 42 additions and 12 deletions

View File

@ -21,7 +21,7 @@ CREATE TABLE "AccessPoint" (
"uptime" TEXT, "uptime" TEXT,
"controller" TEXT, "controller" TEXT,
"model" TEXT, "model" TEXT,
"ipAddress" TEXT, "ip" TEXT,
"clients" INTEGER, "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

@ -150,11 +150,11 @@ model AccessPoint {
uptime String? uptime String?
controller String? controller String?
model String? model String?
ipAddress String? ip String?
clients Int? clients Int?
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
WifiDevices WifiDevice[] @relation("wifidevice_to_ap") wifiDevices WifiDevice[] @relation("wifidevice_to_ap")
} }

View File

@ -142,7 +142,7 @@ export async function getAccessPoints() {
uptime: Ut.toString(), uptime: Ut.toString(),
controller: 'Cisco', controller: 'Cisco',
model: Md, model: Md,
ipAddress: A4, ip: A4,
clients: Cl clients: Cl
}) })
) )

View File

@ -218,7 +218,7 @@ export async function getAccessPoints() {
uptime: uptime?.toString(), uptime: uptime?.toString(),
controller: 'UniFi', controller: 'UniFi',
model, model,
ipAddress: ip, ip,
clients: num_sta clients: num_sta
}) })
) )

View File

@ -84,7 +84,7 @@ function mockHostName({ mac, oui }) {
} }
async function updateDB(onlineDevices) { async function updateDB(onlineDevices) {
const upsertPromises = onlineDevices.map(async device => { const devicesUpsertPromises = onlineDevices.map(async device => {
if (!device.user) forceUserDisconnect(device.mac) if (!device.user) forceUserDisconnect(device.mac)
const user = device.user const user = device.user
@ -109,7 +109,12 @@ async function updateDB(onlineDevices) {
update: { update: {
...device, ...device,
hostname, hostname,
user user,
accessPoint: {
connect: {
hostname: device.apName
}
}
} }
}) })
.catch(async e => { .catch(async e => {
@ -128,7 +133,12 @@ async function updateDB(onlineDevices) {
update: { update: {
...device, ...device,
hostname, hostname,
user: undefined user: undefined,
accessPoint: {
connect: {
hostname: device.apName
}
}
} }
}) })
} catch (e) { } catch (e) {
@ -147,7 +157,7 @@ async function updateDB(onlineDevices) {
}) })
}) })
return Promise.allSettled(upsertPromises) return Promise.allSettled(devicesUpsertPromises)
} }
function updateDevicesInfo() { function updateDevicesInfo() {

View File

@ -0,0 +1,3 @@
import prisma from '../prisma'
export const AccessPoint = {}

View File

@ -97,6 +97,7 @@ const Mutation = {
message: `Erro tentando atualizar os pontos de acesso: ${e.message}`, message: `Erro tentando atualizar os pontos de acesso: ${e.message}`,
data: { error: e } data: { error: e }
}) })
throw e
} }
} }
} }

View File

@ -4,6 +4,9 @@ export async function accessPoints() {
return prisma.accessPoint.findMany({ return prisma.accessPoint.findMany({
orderBy: { orderBy: {
hostname: 'asc' hostname: 'asc'
},
include: {
wifiDevices: true
} }
}) })
} }

View File

@ -1,7 +1,17 @@
import prisma from '../prisma'
const WifiDevice = { const WifiDevice = {
lastSeen: parent => parent.lastSeen?.toISOString(), lastSeen: parent => parent.lastSeen?.toISOString(),
firstSeen: parent => parent.firstSeen?.toISOString() firstSeen: parent => parent.firstSeen?.toISOString(),
user: async parent =>
(
await prisma.wifiDevice.findUnique({
where: { id: parent.id },
include: { user: true }
})
).user
} }
export { WifiDevice } export { WifiDevice }

View File

@ -2,6 +2,7 @@ import { Mutation } from './Mutation'
import { Query } from './Query' import { Query } from './Query'
import { Subscription } from './Subscriptions' import { Subscription } from './Subscriptions'
import { AccessPoint } from './AccessPoint'
import { Group } from './Group' import { Group } from './Group'
import { Log } from './Log' import { Log } from './Log'
import { PAHost } from './PAHost' import { PAHost } from './PAHost'
@ -16,6 +17,7 @@ const resolvers = {
Query, Query,
Subscription, Subscription,
AccessPoint,
Group, Group,
Log, Log,
PAHost, PAHost,

View File

@ -297,11 +297,12 @@ const typeDefs = gql`
uptime: String uptime: String
controller: String controller: String
model: String model: String
ipAddress: String ip: String
clients: Int
createdAt: String createdAt: String
updatedAt: String updatedAt: String
WifiDevices: [WifiDevice] wifiDevices: [WifiDevice]
} }
input LoginInput { input LoginInput {