diff --git a/src/lib/clickhouse.ts b/src/lib/clickhouse.ts index 24e6a3b6..397883fb 100644 --- a/src/lib/clickhouse.ts +++ b/src/lib/clickhouse.ts @@ -187,6 +187,7 @@ async function rawQuery( query: query, query_params: params, format: 'JSONEachRow', + clickhouse_settings: { output_format_json_quote_64bit_integers: 0 }, }); return (await resultSet.json()) as T; diff --git a/src/queries/analytics/events/getEventDataEvents.ts b/src/queries/analytics/events/getEventDataEvents.ts index 6b57330c..0b19c5be 100644 --- a/src/queries/analytics/events/getEventDataEvents.ts +++ b/src/queries/analytics/events/getEventDataEvents.ts @@ -85,17 +85,7 @@ async function clickhouseQuery( limit 500 `, params, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - eventName: a.eventName, - propertyName: a.propertyName, - dataType: Number(a.dataType), - propertyValue: a.propertyValue, - total: Number(a.total), - }; - }); - }); + ); } return rawQuery( @@ -113,14 +103,5 @@ async function clickhouseQuery( limit 500 `, params, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - eventName: a.eventName, - propertyName: a.propertyName, - dataType: Number(a.dataType), - total: Number(a.total), - }; - }); - }); + ); } diff --git a/src/queries/analytics/events/getEventDataProperties.ts b/src/queries/analytics/events/getEventDataProperties.ts index 9d55f896..cdf76c3f 100644 --- a/src/queries/analytics/events/getEventDataProperties.ts +++ b/src/queries/analytics/events/getEventDataProperties.ts @@ -64,13 +64,5 @@ async function clickhouseQuery( limit 500 `, params, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - eventName: a.eventName, - propertyName: a.propertyName, - total: Number(a.total), - }; - }); - }); + ); } diff --git a/src/queries/analytics/events/getEventDataStats.ts b/src/queries/analytics/events/getEventDataStats.ts index 51a0da74..adeeda46 100644 --- a/src/queries/analytics/events/getEventDataStats.ts +++ b/src/queries/analytics/events/getEventDataStats.ts @@ -13,7 +13,7 @@ export async function getEventDataStats( return runQuery({ [PRISMA]: () => relationalQuery(...args), [CLICKHOUSE]: () => clickhouseQuery(...args), - }).then(results => results[0]); + }).then(results => results?.[0]); } async function relationalQuery(websiteId: string, filters: QueryFilters) { @@ -68,13 +68,5 @@ async function clickhouseQuery( ) as t `, params, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - events: Number(a.events), - properties: Number(a.properties), - records: Number(a.records), - }; - }); - }); + ); } diff --git a/src/queries/analytics/events/getEventDataUsage.ts b/src/queries/analytics/events/getEventDataUsage.ts index 2a19f33e..1d146c9c 100644 --- a/src/queries/analytics/events/getEventDataUsage.ts +++ b/src/queries/analytics/events/getEventDataUsage.ts @@ -30,9 +30,5 @@ function clickhouseQuery( startDate, endDate, }, - ).then(result => { - return Object.values(result).map((a: any) => { - return { websiteId: a.websiteId, count: Number(a.count) }; - }); - }); + ); } diff --git a/src/queries/analytics/events/getEventDataValues.ts b/src/queries/analytics/events/getEventDataValues.ts index 7ccd7a28..f6b36b56 100644 --- a/src/queries/analytics/events/getEventDataValues.ts +++ b/src/queries/analytics/events/getEventDataValues.ts @@ -66,12 +66,5 @@ async function clickhouseQuery( limit 100 `, params, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - ...a, - total: Number(a.total), - }; - }); - }); + ); } diff --git a/src/queries/analytics/getActiveVisitors.ts b/src/queries/analytics/getActiveVisitors.ts index 6d55f5de..c59a265a 100644 --- a/src/queries/analytics/getActiveVisitors.ts +++ b/src/queries/analytics/getActiveVisitors.ts @@ -18,9 +18,9 @@ async function relationalQuery(websiteId: string) { select count(distinct session_id) x from website_event where website_id = {{websiteId::uuid}} - and created_at >= {{startAt}} + and created_at >= {{startDate}} `, - { websiteId, startAt: subMinutes(new Date(), 5) }, + { websiteId, startDate: subMinutes(new Date(), 5) }, ); return result[0] ?? null; @@ -35,14 +35,10 @@ async function clickhouseQuery(websiteId: string): Promise<{ x: number }> { count(distinct session_id) x from website_event where website_id = {websiteId:UUID} - and created_at >= {startAt:DateTime64} + and created_at >= {startDate:DateTime64} `, - { websiteId, startAt: subMinutes(new Date(), 5) }, - ).then(a => { - return Object.values(a).map(a => { - return { x: Number(a.x) }; - }); - }); + { websiteId, startDate: subMinutes(new Date(), 5) }, + ); return result[0] ?? null; } diff --git a/src/queries/analytics/getWebsiteStats.ts b/src/queries/analytics/getWebsiteStats.ts index c5141d3b..061d487e 100644 --- a/src/queries/analytics/getWebsiteStats.ts +++ b/src/queries/analytics/getWebsiteStats.ts @@ -117,15 +117,5 @@ async function clickhouseQuery( `; } - return rawQuery(sql, params).then(result => { - return Object.values(result).map((a: any) => { - return { - pageviews: Number(a.pageviews), - visitors: Number(a.visitors), - visits: Number(a.visits), - bounces: Number(a.bounces), - totaltime: Number(a.totaltime), - }; - }); - }); + return rawQuery(sql, params); } diff --git a/src/queries/analytics/pageviews/getPageviewStats.ts b/src/queries/analytics/pageviews/getPageviewStats.ts index 1d027e79..0b80a2ed 100644 --- a/src/queries/analytics/pageviews/getPageviewStats.ts +++ b/src/queries/analytics/pageviews/getPageviewStats.ts @@ -87,9 +87,5 @@ async function clickhouseQuery( `; } - return rawQuery(sql, params).then(result => { - return Object.values(result).map((a: any) => { - return { x: a.x, y: Number(a.y) }; - }); - }); + return rawQuery(sql, params); } diff --git a/src/queries/analytics/reports/getRetention.ts b/src/queries/analytics/reports/getRetention.ts index 24aa2e3a..eb184e18 100644 --- a/src/queries/analytics/reports/getRetention.ts +++ b/src/queries/analytics/reports/getRetention.ts @@ -90,9 +90,7 @@ async function relationalQuery( startDate, endDate, }, - ).then(results => { - return results.map(i => ({ ...i, percentage: Number(i.percentage) || 0 })); - }); + ); } async function clickhouseQuery( @@ -169,15 +167,5 @@ async function clickhouseQuery( startDate, endDate, }, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - date: a.date, - day: Number(a.day), - visitors: Number(a.visitors), - returnVisitors: Number(a.returnVisitors), - percentage: Number(a.percentage), - }; - }); - }); + ); } diff --git a/src/queries/analytics/reports/getRevenue.ts b/src/queries/analytics/reports/getRevenue.ts index e4857a43..502505f4 100644 --- a/src/queries/analytics/reports/getRevenue.ts +++ b/src/queries/analytics/reports/getRevenue.ts @@ -143,17 +143,7 @@ async function clickhouseQuery( order by time `, { websiteId, startDate, endDate, eventName, revenueProperty, userProperty }, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - time: a.time, - sum: Number(a.sum), - avg: Number(a.avg), - count: Number(a.count), - uniqueCount: Number(!a.avg ? 0 : a.uniqueCount), - }; - }); - }); + ).then(result => result?.[0]); const totalRes = await rawQuery<{ sum: number; @@ -174,16 +164,7 @@ async function clickhouseQuery( and data_key in ({revenueProperty:String}, {userProperty:String}) `, { websiteId, startDate, endDate, eventName, revenueProperty, userProperty }, - ).then(results => { - const result = results[0]; - - return { - sum: Number(result.sum), - avg: Number(result.avg), - count: Number(result.count), - uniqueCount: Number(!result.avg ? 0 : result.uniqueCount), - }; - }); + ); return { chart: chartRes, total: totalRes }; } diff --git a/src/queries/analytics/sessions/getSessionDataProperties.ts b/src/queries/analytics/sessions/getSessionDataProperties.ts index b33fecfb..1d15ea8d 100644 --- a/src/queries/analytics/sessions/getSessionDataProperties.ts +++ b/src/queries/analytics/sessions/getSessionDataProperties.ts @@ -61,12 +61,5 @@ async function clickhouseQuery( limit 500 `, params, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - propertyName: a.propertyName, - total: Number(a.total), - }; - }); - }); + ); } diff --git a/src/queries/analytics/sessions/getSessionDataValues.ts b/src/queries/analytics/sessions/getSessionDataValues.ts index 0f0f806a..d9a7eb59 100644 --- a/src/queries/analytics/sessions/getSessionDataValues.ts +++ b/src/queries/analytics/sessions/getSessionDataValues.ts @@ -61,12 +61,5 @@ async function clickhouseQuery( limit 100 `, params, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - ...a, - total: Number(a.total), - }; - }); - }); + ); } diff --git a/src/queries/analytics/sessions/getSessionStats.ts b/src/queries/analytics/sessions/getSessionStats.ts index fa748333..af69f454 100644 --- a/src/queries/analytics/sessions/getSessionStats.ts +++ b/src/queries/analytics/sessions/getSessionStats.ts @@ -87,9 +87,5 @@ async function clickhouseQuery( `; } - return rawQuery(sql, params).then(result => { - return Object.values(result).map((a: any) => { - return { x: a.x, y: Number(a.y) }; - }); - }); + return rawQuery(sql, params); } diff --git a/src/queries/analytics/sessions/getWebsiteSessionStats.ts b/src/queries/analytics/sessions/getWebsiteSessionStats.ts index 5660a5fa..648be140 100644 --- a/src/queries/analytics/sessions/getWebsiteSessionStats.ts +++ b/src/queries/analytics/sessions/getWebsiteSessionStats.ts @@ -68,15 +68,5 @@ async function clickhouseQuery( ${filterQuery} `, params, - ).then(result => { - return Object.values(result).map((a: any) => { - return { - pageviews: Number(a.pageviews), - visitors: Number(a.visitors), - visits: Number(a.visits), - countries: Number(a.countries), - events: Number(a.events), - }; - }); - }); + ); }