MCPcopy
hub / github.com/msgbyte/tianji / parseTelemetryFilters

Function parseTelemetryFilters

src/server/utils/prisma.ts:103–135  ·  view source on GitHub ↗
(
  telemetryId: string,
  filters: BaseQueryFilters = {},
  options: QueryOptions = {}
)

Source from the content-addressed store, hash-verified

101}
102
103export async function parseTelemetryFilters(
104 telemetryId: string,
105 filters: BaseQueryFilters = {},
106 options: QueryOptions = {}
107) {
108 const telemetry = await loadTelemetry(telemetryId);
109
110 if (!telemetry) {
111 throw new Error('Not found telemetry');
112 }
113
114 return {
115 joinSession:
116 options?.joinSession ||
117 Object.entries(filters).find(
118 ([key, value]) =>
119 typeof value !== 'undefined' && SESSION_COLUMNS.includes(key)
120 )
121 ? Prisma.sql([
122 `inner join "TelemetrySession" on "TelemetryEvent"."sessionId" = "TelemetrySession"."id"`,
123 ])
124 : Prisma.empty,
125 filterQuery: getTelemetryFilterQuery(filters, options),
126 params: {
127 ...normalizeFilters(filters),
128 telemetryId,
129 startDate: dayjs(filters.startDate).toISOString(),
130 endDate: filters.endDate
131 ? dayjs(filters.endDate).toISOString()
132 : undefined,
133 },
134 };
135}
136
137function normalizeFilters(filters: Record<string, any> = {}) {
138 return Object.keys(filters).reduce(

Callers 6

getTelemetryPageviewFunction · 0.85
getTelemetrySessionFunction · 0.85
getTelemetryStatsFunction · 0.85
getTelemetryUrlMetricsFunction · 0.85

Calls 3

loadTelemetryFunction · 0.85
getTelemetryFilterQueryFunction · 0.85
normalizeFiltersFunction · 0.85

Tested by

no test coverage detected