Stats improvements

This commit is contained in:
Douglas Barone 2022-06-22 14:43:08 +00:00
parent c486ac9fea
commit 29c08eca3d
3 changed files with 11 additions and 10 deletions

View File

@ -1,6 +1,6 @@
import prisma from '../prisma' import prisma from '../prisma'
import { getSubnetInfo } from '../lib/subnetInfo' import { getSubnetInfo } from '../lib/subnetInfo'
import { subDays } from 'date-fns' import { subDays, subMinutes } from 'date-fns'
import { distributedCopy } from '../utils/distributedCopy' import { distributedCopy } from '../utils/distributedCopy'
export const AccessPoint = { export const AccessPoint = {
@ -23,11 +23,8 @@ export const AccessPoint = {
usage: (parent, data, context, info) => usage: (parent, data, context, info) =>
parent.usage ? parent.usage?.toString() : 0, parent.usage ? parent.usage?.toString() : 0,
stats: async (parent, { take, dateIn, dateOut }, context, info) => { stats: async (parent, { take, minutesIn = 60, dateOut }, context, info) => {
if (!dateOut) { const dateIn = subMinutes(dateOut || Date.now(), minutesIn)
dateOut = new Date()
dateIn = subDays(dateOut, 1)
}
const stats = await prisma.accessPointStats.findMany({ const stats = await prisma.accessPointStats.findMany({
where: { where: {

View File

@ -328,7 +328,11 @@ const typeDefs = gql`
updatedAt: String updatedAt: String
wifiDevices: [WifiDevice] wifiDevices: [WifiDevice]
stats(take: Int = 50, dateIn: String, dateOut: String): [AccessPointStats!]! stats(
take: Int = 128
minutesIn: Int = 1440
dateOut: String
): [AccessPointStats!]!
latestStats: AccessPointStats! latestStats: AccessPointStats!
} }

View File

@ -95,13 +95,13 @@ export default {
ticks: { ticks: {
maxRotation: 0, maxRotation: 0,
minRotation: 0, minRotation: 0,
autoSkipPadding: 16 autoSkipPadding: 24
}, },
time: { time: {
unit: 'minute', unit: 'minute',
displayFormats: { displayFormats: {
minute: 'HH:mm' minute: 'd/M HH:mm'
} }
}, },
@ -116,7 +116,7 @@ export default {
chartData() { chartData() {
const pointRadius = 0 const pointRadius = 0
const tension = 0.2 const tension = 0.1
return { return {
labels: this.stats.map(stat => new Date(stat.timestamp).getTime()), labels: this.stats.map(stat => new Date(stat.timestamp).getTime()),