diff --git a/components/pages/event-data/EventDataTable.js b/components/pages/event-data/EventDataTable.js index 55fb0f59..b0d11b9d 100644 --- a/components/pages/event-data/EventDataTable.js +++ b/components/pages/event-data/EventDataTable.js @@ -16,7 +16,7 @@ export function EventDataTable({ data = [] }) { {row => ( - + {row.eventName} )} diff --git a/components/pages/event-data/EventDataValueTable.js b/components/pages/event-data/EventDataValueTable.js index b52c46d3..3688ad09 100644 --- a/components/pages/event-data/EventDataValueTable.js +++ b/components/pages/event-data/EventDataValueTable.js @@ -6,14 +6,14 @@ import PageHeader from 'components/layout/PageHeader'; import Empty from 'components/common/Empty'; import { DATA_TYPES } from 'lib/constants'; -export function EventDataValueTable({ data = [], eventName }) { +export function EventDataValueTable({ data = [], event }) { const { formatMessage, labels } = useMessages(); const { resolveUrl } = usePageQuery(); const Title = () => { return ( <> - + - {eventName} + {event} ); }; diff --git a/components/pages/websites/WebsiteEventData.js b/components/pages/websites/WebsiteEventData.js index d6cb2639..5e208355 100644 --- a/components/pages/websites/WebsiteEventData.js +++ b/components/pages/websites/WebsiteEventData.js @@ -26,15 +26,15 @@ function useData(websiteId, eventName) { export default function WebsiteEventData({ websiteId }) { const { - query: { eventName }, + query: { event }, } = usePageQuery(); - const { data } = useData(websiteId, eventName); + const { data } = useData(websiteId, event); return ( - {!eventName && } - {eventName && } + {!event && } + {event && } ); } diff --git a/lib/clickhouse.ts b/lib/clickhouse.ts index 6d5bcf42..a40567d3 100644 --- a/lib/clickhouse.ts +++ b/lib/clickhouse.ts @@ -3,7 +3,7 @@ import dateFormat from 'dateformat'; import debug from 'debug'; import { CLICKHOUSE } from 'lib/db'; import { QueryFilters } from './types'; -import { FILTER_COLUMNS, IGNORED_FILTERS } from './constants'; +import { FILTER_COLUMNS } from './constants'; import { loadWebsite } from './load'; import { maxDate } from './date'; @@ -66,9 +66,9 @@ function getDateFormat(date) { function getFilterQuery(filters = {}) { const query = Object.keys(filters).reduce((arr, key) => { const filter = filters[key]; + const column = FILTER_COLUMNS[key]; - if (filter !== undefined && !IGNORED_FILTERS.includes(key)) { - const column = FILTER_COLUMNS[key] || key; + if (filter !== undefined && column) { arr.push(`and ${column} = {${key}:String}`); } diff --git a/lib/constants.ts b/lib/constants.ts index 67ed1c51..887f90a9 100644 --- a/lib/constants.ts +++ b/lib/constants.ts @@ -48,23 +48,16 @@ export const FILTER_COLUMNS = { referrer: 'referrer_domain', title: 'page_title', query: 'url_query', + os: 'os', + browser: 'browser', + device: 'device', + country: 'country', region: 'subdivision1', - eventType: 'event_type', - eventName: 'event_name', + city: 'city', + language: 'language', event: 'event_name', }; -export const IGNORED_FILTERS = [ - 'startDate', - 'endDate', - 'timezone', - 'unit', - 'eventType', - 'fields', - 'filters', - 'groups', -]; - export const COLLECTION_TYPE = { event: 'event', identify: 'identify', diff --git a/lib/prisma.ts b/lib/prisma.ts index 50f26f75..a9ddf188 100644 --- a/lib/prisma.ts +++ b/lib/prisma.ts @@ -1,7 +1,7 @@ import prisma from '@umami/prisma-client'; import moment from 'moment-timezone'; import { MYSQL, POSTGRESQL, getDatabaseType } from 'lib/db'; -import { FILTER_COLUMNS, IGNORED_FILTERS, SESSION_COLUMNS } from './constants'; +import { FILTER_COLUMNS, SESSION_COLUMNS } from './constants'; import { loadWebsite } from './load'; import { maxDate } from './date'; import { QueryFilters, QueryOptions } from './types'; @@ -70,9 +70,9 @@ function getTimestampIntervalQuery(field: string): string { function getFilterQuery(filters = {}): string { const query = Object.keys(filters).reduce((arr, key) => { const filter = filters[key]; + const column = FILTER_COLUMNS[key]; - if (filter !== undefined && !IGNORED_FILTERS.includes(key)) { - const column = FILTER_COLUMNS[key] || key; + if (filter !== undefined && column) { arr.push(`and ${column}={{${key}}}`); if (key === 'referrer') { diff --git a/lib/types.ts b/lib/types.ts index 7cc9a619..6057c42e 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -135,9 +135,7 @@ export interface QueryFilters { endDate?: Date; timezone?: string; unit?: string; - domain?: string; eventType?: number; - eventName?: string; url?: string; referrer?: string; title?: string; @@ -149,6 +147,7 @@ export interface QueryFilters { region?: string; city?: string; language?: string; + event?: string; } export interface QueryOptions { diff --git a/pages/api/event-data/events.ts b/pages/api/event-data/events.ts index e8693108..e83e541b 100644 --- a/pages/api/event-data/events.ts +++ b/pages/api/event-data/events.ts @@ -21,7 +21,7 @@ export default async ( await useAuth(req, res); if (req.method === 'GET') { - const { websiteId, startAt, endAt, eventName } = req.query; + const { websiteId, startAt, endAt, event } = req.query; if (!(await canViewWebsite(req.auth, websiteId))) { return unauthorized(res); @@ -33,7 +33,7 @@ export default async ( const data = await getEventDataEvents(websiteId, { startDate, endDate, - eventName, + event, }); return ok(res, data);