diff --git a/lib/clickhouse.js b/lib/clickhouse.js index 519899f2..351c8930 100644 --- a/lib/clickhouse.js +++ b/lib/clickhouse.js @@ -62,7 +62,7 @@ function getBetweenDates(field, start_at, end_at) { and ${getDateFormat(end_at)}`; } -function getFilterQuery(table, column, filters = {}, params = []) { +function getFilterQuery(table, filters = {}, params = []) { const query = Object.keys(filters).reduce((arr, key) => { const filter = filters[key]; @@ -122,7 +122,7 @@ function getFilterQuery(table, column, filters = {}, params = []) { return query.join('\n'); } -function parseFilters(table, column, filters = {}, params = [], sessionKey = 'session_id') { +function parseFilters(table, filters = {}, params = [], sessionKey = 'session_id') { const { domain, url, event_url, referrer, os, browser, device, country, event_name, query } = filters; @@ -139,9 +139,9 @@ function parseFilters(table, column, filters = {}, params = [], sessionKey = 'se os || browser || device || country ? `inner join session on ${table}.${sessionKey} = session.${sessionKey}` : '', - pageviewQuery: getFilterQuery('pageview', column, pageviewFilters, params), - sessionQuery: getFilterQuery('session', column, sessionFilters, params), - eventQuery: getFilterQuery('event', column, eventFilters, params), + pageviewQuery: getFilterQuery('pageview', pageviewFilters, params), + sessionQuery: getFilterQuery('session', sessionFilters, params), + eventQuery: getFilterQuery('event', eventFilters, params), }; } diff --git a/lib/prisma.js b/lib/prisma.js index b93afafa..bc7e06ee 100644 --- a/lib/prisma.js +++ b/lib/prisma.js @@ -85,7 +85,7 @@ function getTimestampInterval(field) { } } -function getFilterQuery(table, column, filters = {}, params = []) { +function getFilterQuery(table, filters = {}, params = []) { const query = Object.keys(filters).reduce((arr, key) => { const filter = filters[key]; @@ -145,7 +145,7 @@ function getFilterQuery(table, column, filters = {}, params = []) { return query.join('\n'); } -function parseFilters(table, column, filters = {}, params = [], sessionKey = 'session_id') { +function parseFilters(table, filters = {}, params = [], sessionKey = 'session_id') { const { domain, url, event_url, referrer, os, browser, device, country, event_name, query } = filters; @@ -162,9 +162,9 @@ function parseFilters(table, column, filters = {}, params = [], sessionKey = 'se os || browser || device || country ? `inner join session on ${table}.${sessionKey} = session.${sessionKey}` : '', - pageviewQuery: getFilterQuery('pageview', column, pageviewFilters, params), - sessionQuery: getFilterQuery('session', column, sessionFilters, params), - eventQuery: getFilterQuery('event', column, eventFilters, params), + pageviewQuery: getFilterQuery('pageview', pageviewFilters, params), + sessionQuery: getFilterQuery('session', sessionFilters, params), + eventQuery: getFilterQuery('event', eventFilters, params), }; } diff --git a/queries/analytics/pageview/getPageviewMetrics.js b/queries/analytics/pageview/getPageviewMetrics.js index d34f4c17..abf2d12d 100644 --- a/queries/analytics/pageview/getPageviewMetrics.js +++ b/queries/analytics/pageview/getPageviewMetrics.js @@ -14,7 +14,6 @@ async function relationalQuery(website_id, start_at, end_at, column, table, filt const params = [website_id, start_at, end_at]; const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters( table, - column, filters, params, ); @@ -39,7 +38,6 @@ async function clickhouseQuery(website_id, start_at, end_at, column, table, filt const params = [website_id]; const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters( table, - column, filters, params, 'session_uuid', diff --git a/queries/analytics/pageview/getPageviewParams.js b/queries/analytics/pageview/getPageviewParams.js index fa445da5..79817659 100644 --- a/queries/analytics/pageview/getPageviewParams.js +++ b/queries/analytics/pageview/getPageviewParams.js @@ -8,12 +8,11 @@ export async function getPageviewParams(...args) { }); } -async function relationalQuery(website_id, start_at, end_at, column, table, filters = {}) { +async function relationalQuery(website_id, start_at, end_at, table, filters = {}) { const { parseFilters, rawQuery } = prisma; const params = [website_id, start_at, end_at]; const { pageviewQuery, sessionQuery, eventQuery, joinSession } = parseFilters( table, - column, filters, params, ); diff --git a/queries/analytics/pageview/getPageviewStats.js b/queries/analytics/pageview/getPageviewStats.js index da25ab0c..3c7c3147 100644 --- a/queries/analytics/pageview/getPageviewStats.js +++ b/queries/analytics/pageview/getPageviewStats.js @@ -21,12 +21,7 @@ async function relationalQuery( ) { const { getDateQuery, parseFilters, rawQuery } = prisma; const params = [website_id, start_at, end_at]; - const { pageviewQuery, sessionQuery, joinSession } = parseFilters( - 'pageview', - null, - filters, - params, - ); + const { pageviewQuery, sessionQuery, joinSession } = parseFilters('pageview', filters, params); return rawQuery( `select ${getDateQuery('pageview.created_at', unit, timezone)} t, @@ -56,7 +51,6 @@ async function clickhouseQuery( const params = [website_id]; const { pageviewQuery, sessionQuery, joinSession } = parseFilters( 'pageview', - null, filters, params, sessionKey, diff --git a/queries/analytics/session/getSessionMetrics.js b/queries/analytics/session/getSessionMetrics.js index 36eb7568..d95e1512 100644 --- a/queries/analytics/session/getSessionMetrics.js +++ b/queries/analytics/session/getSessionMetrics.js @@ -12,12 +12,7 @@ export async function getSessionMetrics(...args) { async function relationalQuery(website_id, start_at, end_at, field, filters = {}) { const { parseFilters, rawQuery } = prisma; const params = [website_id, start_at, end_at]; - const { pageviewQuery, sessionQuery, joinSession } = parseFilters( - 'pageview', - null, - filters, - params, - ); + const { pageviewQuery, sessionQuery, joinSession } = parseFilters('pageview', filters, params); return rawQuery( `select ${field} x, count(*) y @@ -42,7 +37,6 @@ async function clickhouseQuery(website_id, start_at, end_at, field, filters = {} const params = [website_id]; const { pageviewQuery, sessionQuery, joinSession } = parseFilters( 'pageview', - null, filters, params, 'session_uuid', diff --git a/queries/analytics/stats/getWebsiteStats.js b/queries/analytics/stats/getWebsiteStats.js index 5d280563..1f9ba565 100644 --- a/queries/analytics/stats/getWebsiteStats.js +++ b/queries/analytics/stats/getWebsiteStats.js @@ -12,12 +12,7 @@ export async function getWebsiteStats(...args) { async function relationalQuery(website_id, start_at, end_at, filters = {}) { const { getDateQuery, getTimestampInterval, parseFilters, rawQuery } = prisma; const params = [website_id, start_at, end_at]; - const { pageviewQuery, sessionQuery, joinSession } = parseFilters( - 'pageview', - null, - filters, - params, - ); + const { pageviewQuery, sessionQuery, joinSession } = parseFilters('pageview', filters, params); return rawQuery( `select sum(t.c) as "pageviews", @@ -46,7 +41,6 @@ async function clickhouseQuery(website_id, start_at, end_at, filters = {}) { const params = [website_id]; const { pageviewQuery, sessionQuery, joinSession } = parseFilters( 'pageview', - null, filters, params, 'session_uuid',