diff --git a/server/prisma/migrations/20220324171917_add_access_point_model/migration.sql b/server/prisma/migrations/20220324181324_add_access_point_model/migration.sql similarity index 98% rename from server/prisma/migrations/20220324171917_add_access_point_model/migration.sql rename to server/prisma/migrations/20220324181324_add_access_point_model/migration.sql index 30f9faf..d91edac 100644 --- a/server/prisma/migrations/20220324171917_add_access_point_model/migration.sql +++ b/server/prisma/migrations/20220324181324_add_access_point_model/migration.sql @@ -21,7 +21,7 @@ CREATE TABLE "AccessPoint" ( "uptime" TEXT, "controller" TEXT, "model" TEXT, - "ipAddress" TEXT, + "ip" TEXT, "clients" INTEGER, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, diff --git a/server/prisma/schema.prisma b/server/prisma/schema.prisma index f7881f3..08d85db 100644 --- a/server/prisma/schema.prisma +++ b/server/prisma/schema.prisma @@ -150,11 +150,11 @@ model AccessPoint { uptime String? controller String? model String? - ipAddress String? + ip String? clients Int? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt - WifiDevices WifiDevice[] @relation("wifidevice_to_ap") + wifiDevices WifiDevice[] @relation("wifidevice_to_ap") } diff --git a/server/src/lib/ciscoController.js b/server/src/lib/ciscoController.js index 7c9517a..10bccab 100644 --- a/server/src/lib/ciscoController.js +++ b/server/src/lib/ciscoController.js @@ -142,7 +142,7 @@ export async function getAccessPoints() { uptime: Ut.toString(), controller: 'Cisco', model: Md, - ipAddress: A4, + ip: A4, clients: Cl }) ) diff --git a/server/src/lib/unifiController.js b/server/src/lib/unifiController.js index bea4c97..4944bfd 100644 --- a/server/src/lib/unifiController.js +++ b/server/src/lib/unifiController.js @@ -218,7 +218,7 @@ export async function getAccessPoints() { uptime: uptime?.toString(), controller: 'UniFi', model, - ipAddress: ip, + ip, clients: num_sta }) ) diff --git a/server/src/lib/wifiDevices.js b/server/src/lib/wifiDevices.js index 7badcd9..d07da66 100644 --- a/server/src/lib/wifiDevices.js +++ b/server/src/lib/wifiDevices.js @@ -84,7 +84,7 @@ function mockHostName({ mac, oui }) { } async function updateDB(onlineDevices) { - const upsertPromises = onlineDevices.map(async device => { + const devicesUpsertPromises = onlineDevices.map(async device => { if (!device.user) forceUserDisconnect(device.mac) const user = device.user @@ -109,7 +109,12 @@ async function updateDB(onlineDevices) { update: { ...device, hostname, - user + user, + accessPoint: { + connect: { + hostname: device.apName + } + } } }) .catch(async e => { @@ -128,7 +133,12 @@ async function updateDB(onlineDevices) { update: { ...device, hostname, - user: undefined + user: undefined, + accessPoint: { + connect: { + hostname: device.apName + } + } } }) } catch (e) { @@ -147,7 +157,7 @@ async function updateDB(onlineDevices) { }) }) - return Promise.allSettled(upsertPromises) + return Promise.allSettled(devicesUpsertPromises) } function updateDevicesInfo() { diff --git a/server/src/resolvers/AccessPoint.js b/server/src/resolvers/AccessPoint.js new file mode 100644 index 0000000..43f2bdc --- /dev/null +++ b/server/src/resolvers/AccessPoint.js @@ -0,0 +1,3 @@ +import prisma from '../prisma' + +export const AccessPoint = {} diff --git a/server/src/resolvers/Mutation/index.js b/server/src/resolvers/Mutation/index.js index c520fac..d0ceba0 100644 --- a/server/src/resolvers/Mutation/index.js +++ b/server/src/resolvers/Mutation/index.js @@ -97,6 +97,7 @@ const Mutation = { message: `Erro tentando atualizar os pontos de acesso: ${e.message}`, data: { error: e } }) + throw e } } } diff --git a/server/src/resolvers/Query/accessPoints.js b/server/src/resolvers/Query/accessPoints.js index 19852d5..ad9bd67 100644 --- a/server/src/resolvers/Query/accessPoints.js +++ b/server/src/resolvers/Query/accessPoints.js @@ -4,6 +4,9 @@ export async function accessPoints() { return prisma.accessPoint.findMany({ orderBy: { hostname: 'asc' + }, + include: { + wifiDevices: true } }) } diff --git a/server/src/resolvers/WifiDevice.js b/server/src/resolvers/WifiDevice.js index 7d8cc95..488a28a 100644 --- a/server/src/resolvers/WifiDevice.js +++ b/server/src/resolvers/WifiDevice.js @@ -1,7 +1,17 @@ +import prisma from '../prisma' + const WifiDevice = { 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 } diff --git a/server/src/resolvers/index.js b/server/src/resolvers/index.js index 2c89fc3..4ddaaa9 100755 --- a/server/src/resolvers/index.js +++ b/server/src/resolvers/index.js @@ -2,6 +2,7 @@ import { Mutation } from './Mutation' import { Query } from './Query' import { Subscription } from './Subscriptions' +import { AccessPoint } from './AccessPoint' import { Group } from './Group' import { Log } from './Log' import { PAHost } from './PAHost' @@ -16,6 +17,7 @@ const resolvers = { Query, Subscription, + AccessPoint, Group, Log, PAHost, diff --git a/server/src/typeDefs.js b/server/src/typeDefs.js index ec0ba0b..baf14c1 100644 --- a/server/src/typeDefs.js +++ b/server/src/typeDefs.js @@ -297,11 +297,12 @@ const typeDefs = gql` uptime: String controller: String model: String - ipAddress: String + ip: String + clients: Int createdAt: String updatedAt: String - WifiDevices: [WifiDevice] + wifiDevices: [WifiDevice] } input LoginInput {