Add WifiStats to GraphQL server
This commit is contained in:
parent
05159d91a6
commit
2f6ee379c5
|
@ -98,6 +98,10 @@ export async function deleteOldStats() {
|
||||||
message: `${stats.count} estatísticas com mais de ${DAYS_TO_KEEP} dias deletadas.`
|
message: `${stats.count} estatísticas com mais de ${DAYS_TO_KEEP} dias deletadas.`
|
||||||
})
|
})
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
logError({
|
||||||
|
tags: ['wifiStats', 'deleteOldStats'],
|
||||||
|
message: 'Erro ao deletar estatísticas antigas',
|
||||||
|
data: e
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,5 +18,21 @@ export const AccessPoint = {
|
||||||
},
|
},
|
||||||
subnetInfo: parent => getSubnetInfo(parent.ip),
|
subnetInfo: parent => getSubnetInfo(parent.ip),
|
||||||
|
|
||||||
usage: (parent, data, context, info) => parent.usage.toString()
|
usage: (parent, data, context, info) => parent.usage.toString(),
|
||||||
|
|
||||||
|
stats: async (parent, { take, dateIn, dateOut }, context, info) =>
|
||||||
|
prisma.wifiStats.findMany({
|
||||||
|
where: {
|
||||||
|
accessPoint: {
|
||||||
|
id: parent.id
|
||||||
|
}
|
||||||
|
},
|
||||||
|
take
|
||||||
|
}),
|
||||||
|
|
||||||
|
latestStats: async (parent, data, context, info) =>
|
||||||
|
prisma.wifiStats.findFirst({
|
||||||
|
where: { accessPoint: { id: parent.id } },
|
||||||
|
orderBy: { timestamp: 'desc' }
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
6
server/src/resolvers/WifiStats.js
Normal file
6
server/src/resolvers/WifiStats.js
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
const WifiStats = {
|
||||||
|
avgUsage: parent => parent.avgUsage.toString(),
|
||||||
|
sumUsage: parent => parent.sumUsage.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
export { WifiStats }
|
|
@ -11,6 +11,7 @@ import { Stats } from './Stats'
|
||||||
import { User } from './User'
|
import { User } from './User'
|
||||||
import { UserPresence } from './UserPresence'
|
import { UserPresence } from './UserPresence'
|
||||||
import { WifiDevice } from './WifiDevice'
|
import { WifiDevice } from './WifiDevice'
|
||||||
|
import { WifiStats } from './WifiStats'
|
||||||
|
|
||||||
const resolvers = {
|
const resolvers = {
|
||||||
Mutation,
|
Mutation,
|
||||||
|
@ -25,7 +26,8 @@ const resolvers = {
|
||||||
Stats,
|
Stats,
|
||||||
User,
|
User,
|
||||||
UserPresence,
|
UserPresence,
|
||||||
WifiDevice
|
WifiDevice,
|
||||||
|
WifiStats
|
||||||
}
|
}
|
||||||
|
|
||||||
export { resolvers }
|
export { resolvers }
|
||||||
|
|
|
@ -327,6 +327,31 @@ const typeDefs = gql`
|
||||||
createdAt: String
|
createdAt: String
|
||||||
updatedAt: String
|
updatedAt: String
|
||||||
wifiDevices: [WifiDevice]
|
wifiDevices: [WifiDevice]
|
||||||
|
|
||||||
|
stats(take: Int = 50, dateIn: String, dateOut: String): [WifiStats!]!
|
||||||
|
latestStats: WifiStats!
|
||||||
|
}
|
||||||
|
|
||||||
|
"A Wireless Access Point stats"
|
||||||
|
type WifiStats {
|
||||||
|
id: ID!
|
||||||
|
timestamp: String
|
||||||
|
|
||||||
|
clients: Int
|
||||||
|
|
||||||
|
avgSignalStrength: Int
|
||||||
|
minSignalStrength: Int
|
||||||
|
maxSignalStrength: Int
|
||||||
|
|
||||||
|
avgSpeed: Int
|
||||||
|
minSpeed: Int
|
||||||
|
maxSpeed: Int
|
||||||
|
|
||||||
|
avgClientUptime: Int
|
||||||
|
maxClientUptime: Int
|
||||||
|
|
||||||
|
avgUsage: String
|
||||||
|
sumUsage: String
|
||||||
}
|
}
|
||||||
|
|
||||||
"A WiFi Device Search result"
|
"A WiFi Device Search result"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user