diff --git a/src/server/api/routers/dns-hole.ts b/src/server/api/routers/dns-hole/router.ts similarity index 92% rename from src/server/api/routers/dns-hole.ts rename to src/server/api/routers/dns-hole/router.ts index 2a5c02a94..e21a3dc59 100644 --- a/src/server/api/routers/dns-hole.ts +++ b/src/server/api/routers/dns-hole/router.ts @@ -135,8 +135,14 @@ const collectAdGuardSummary = async (app: ConfigAppType) => { const status = await adGuard.getStatus(); const countFilteredDomains = await adGuard.getCountFilteringDomains(); - const blockedQueriesToday = stats.blocked_filtering.reduce((prev, sum) => prev + sum, 0); - const queriesToday = stats.dns_queries.reduce((prev, sum) => prev + sum, 0); + const blockedQueriesToday = + stats.time_units === 'days' + ? stats.blocked_filtering[stats.blocked_filtering.length - 1] + : stats.blocked_filtering.reduce((prev, sum) => prev + sum, 0); + const queriesToday = + stats.time_units === 'days' + ? stats.dns_queries[stats.dns_queries.length - 1] + : stats.dns_queries.reduce((prev, sum) => prev + sum, 0); return { domainsBeingBlocked: countFilteredDomains, diff --git a/src/tools/server/sdk/adGuard/adGuard.schema.ts b/src/tools/server/sdk/adGuard/adGuard.schema.ts index bad381659..a2c843062 100644 --- a/src/tools/server/sdk/adGuard/adGuard.schema.ts +++ b/src/tools/server/sdk/adGuard/adGuard.schema.ts @@ -1,7 +1,7 @@ import { z } from 'zod'; export const adGuardApiStatsResponseSchema = z.object({ - time_units: z.enum(['hours']), + time_units: z.enum(['hours', 'days']), top_queried_domains: z.array(z.record(z.string(), z.number())), top_clients: z.array(z.record(z.string(), z.number())), top_blocked_domains: z.array(z.record(z.string(), z.number())), diff --git a/src/tools/server/sdk/adGuard/adGuard.ts b/src/tools/server/sdk/adGuard/adGuard.ts index e018a2e7c..38a05102c 100644 --- a/src/tools/server/sdk/adGuard/adGuard.ts +++ b/src/tools/server/sdk/adGuard/adGuard.ts @@ -1,3 +1,4 @@ +import { z } from 'zod'; import { trimStringEnding } from '../../../shared/strings'; import { adGuardApiFilteringStatusSchema, @@ -77,19 +78,4 @@ export class AdGuard { } } -export type AdGuardStatsType = { - time_units: string; - top_queried_domains: { [key: string]: number }[]; - top_clients: { [key: string]: number }[]; - top_blocked_domains: { [key: string]: number }[]; - dns_queries: number[]; - blocked_filtering: number[]; - replaced_safebrowsing: number[]; - replaced_parental: number[]; - num_dns_queries: number; - num_blocked_filtering: number; - num_replaced_safebrowsing: number; - num_replaced_safesearch: number; - num_replaced_parental: number; - avg_processing_time: number; -}; +export type AdGuardStatsType = z.infer; diff --git a/src/widgets/dnshole/DnsHoleSummary.tsx b/src/widgets/dnshole/DnsHoleSummary.tsx index bcfc443e5..270f18dd5 100644 --- a/src/widgets/dnshole/DnsHoleSummary.tsx +++ b/src/widgets/dnshole/DnsHoleSummary.tsx @@ -138,7 +138,7 @@ function DnsHoleSummaryWidgetTile({ widget }: DnsHoleSummaryWidgetProps) {
- {formatNumber(data.dnsQueriesToday, 3)} + {formatNumber(data.dnsQueriesToday, 0)} {t('card.metrics.queriesToday')}