diff --git a/server/src/lib/accessPoints.js b/server/src/lib/accessPoints.js index 6ea4a04..d187335 100644 --- a/server/src/lib/accessPoints.js +++ b/server/src/lib/accessPoints.js @@ -17,13 +17,18 @@ async function getAccessPoints() { } async function updateDB(accessPoints) { + const dbAccessPoints = [] + for (const accessPoint of accessPoints) { - await prisma.accessPoint.upsert({ - where: { mac: accessPoint.mac }, - create: accessPoint, - update: accessPoint - }) + dbAccessPoints.push( + await prisma.accessPoint.upsert({ + where: { mac: accessPoint.mac }, + create: accessPoint, + update: accessPoint + }) + ) } + return dbAccessPoints } export async function updateAccessPoints() { @@ -34,7 +39,7 @@ export async function updateAccessPoints() { const accessPoints = await getAccessPoints() - await updateDB(accessPoints) + const dbAccessPoints = await updateDB(accessPoints) - pubsub.publish(ACCESS_POINTS_UPDATED, { accessPointsUpdated: accessPoints }) + pubsub.publish(ACCESS_POINTS_UPDATED, { accessPointsUpdated: dbAccessPoints }) } diff --git a/server/src/resolvers/Subscriptions/index.js b/server/src/resolvers/Subscriptions/index.js index 7341d57..49668c5 100644 --- a/server/src/resolvers/Subscriptions/index.js +++ b/server/src/resolvers/Subscriptions/index.js @@ -1,4 +1,9 @@ -import { pubsub, USER_PRESENCE_UPDATED, AUTH_UPDATED } from '../../pubsub' +import { + pubsub, + USER_PRESENCE_UPDATED, + AUTH_UPDATED, + ACCESS_POINTS_UPDATED +} from '../../pubsub' import { withFilter } from 'apollo-server' import { validateToken } from '../../utils/validateToken' @@ -6,6 +11,9 @@ const Subscription = { userPresenceUpdated: { subscribe: () => pubsub.asyncIterator([USER_PRESENCE_UPDATED]) }, + accessPointsUpdated: { + subscribe: () => pubsub.asyncIterator([ACCESS_POINTS_UPDATED]) + }, authUpdated: { subscribe: withFilter( () => pubsub.asyncIterator([AUTH_UPDATED]), diff --git a/server/src/typeDefs.js b/server/src/typeDefs.js index baf14c1..ca6f005 100644 --- a/server/src/typeDefs.js +++ b/server/src/typeDefs.js @@ -104,6 +104,9 @@ const typeDefs = gql` "Info about the logged user was updated" authUpdated: User! @auth + + "Access Points were updated" + accessPointsUpdated: [AccessPoint!]! } "Needs authentication. Optionally, provide an array with roles to match."