diff --git a/lib/constants.ts b/lib/constants.ts index b9d99b30..15b2444d 100644 --- a/lib/constants.ts +++ b/lib/constants.ts @@ -18,6 +18,7 @@ export const DEFAULT_THEME = 'light'; export const DEFAULT_ANIMATION_DURATION = 300; export const DEFAULT_DATE_RANGE = '24hour'; export const DEFAULT_WEBSITE_LIMIT = 10; +export const DEFAULT_CREATED_AT = '2000-01-01'; export const REALTIME_RANGE = 30; export const REALTIME_INTERVAL = 5000; diff --git a/queries/analytics/event/getEventMetrics.ts b/queries/analytics/event/getEventMetrics.ts index 32c4c3d0..ea05dae4 100644 --- a/queries/analytics/event/getEventMetrics.ts +++ b/queries/analytics/event/getEventMetrics.ts @@ -2,7 +2,7 @@ import prisma from 'lib/prisma'; import clickhouse from 'lib/clickhouse'; import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db'; import { WebsiteEventMetric } from 'lib/types'; -import { EVENT_TYPE } from 'lib/constants'; +import { DEFAULT_CREATED_AT, EVENT_TYPE } from 'lib/constants'; import { loadWebsite } from 'lib/query'; export async function getEventMetrics( @@ -47,7 +47,7 @@ async function relationalQuery( ) { const { toUuid, rawQuery, getDateQuery, getFilterQuery } = prisma; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params: any = [websiteId, resetDate, startDate, endDate]; const filterQuery = getFilterQuery(filters, params); @@ -89,7 +89,7 @@ async function clickhouseQuery( ) { const { rawQuery, getDateQuery, getDateFormat, getBetweenDates, getFilterQuery } = clickhouse; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params = { websiteId }; return rawQuery( diff --git a/queries/analytics/eventData/getEventData.ts b/queries/analytics/eventData/getEventData.ts index 73a71386..7369ad13 100644 --- a/queries/analytics/eventData/getEventData.ts +++ b/queries/analytics/eventData/getEventData.ts @@ -3,6 +3,7 @@ import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; import prisma from 'lib/prisma'; import { WebsiteEventDataMetric } from 'lib/types'; import { loadWebsite } from 'lib/query'; +import { DEFAULT_CREATED_AT } from 'lib/constants'; export async function getEventData( ...args: [ @@ -49,7 +50,7 @@ async function relationalQuery( const { startDate, endDate, timeSeries, eventName, urlPath, filters } = data; const { toUuid, rawQuery, getEventDataFilterQuery, getDateQuery } = prisma; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params: any = [websiteId, resetDate, startDate, endDate, eventName || '']; return rawQuery( @@ -99,7 +100,7 @@ async function clickhouseQuery( const { rawQuery, getDateFormat, getBetweenDates, getDateQuery, getEventDataFilterQuery } = clickhouse; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params = { websiteId }; return rawQuery( diff --git a/queries/analytics/eventData/getEventDataFields.ts b/queries/analytics/eventData/getEventDataFields.ts index 5d2b9ef0..43c3363a 100644 --- a/queries/analytics/eventData/getEventDataFields.ts +++ b/queries/analytics/eventData/getEventDataFields.ts @@ -3,6 +3,7 @@ import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; import prisma from 'lib/prisma'; import { WebsiteEventDataMetric } from 'lib/types'; import { loadWebsite } from 'lib/query'; +import { DEFAULT_CREATED_AT } from 'lib/constants'; export async function getEventDataFields( ...args: [websiteId: string, startDate: Date, endDate: Date] @@ -16,7 +17,7 @@ export async function getEventDataFields( async function relationalQuery(websiteId: string, startDate: Date, endDate: Date) { const { toUuid, rawQuery } = prisma; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params: any = [websiteId, resetDate, startDate, endDate]; return rawQuery( @@ -33,7 +34,7 @@ async function relationalQuery(websiteId: string, startDate: Date, endDate: Date async function clickhouseQuery(websiteId: string, startDate: Date, endDate: Date) { const { rawQuery, getDateFormat, getBetweenDates } = clickhouse; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params = { websiteId }; return rawQuery( diff --git a/queries/analytics/pageview/getPageviewMetrics.ts b/queries/analytics/pageview/getPageviewMetrics.ts index db82720d..5f575a89 100644 --- a/queries/analytics/pageview/getPageviewMetrics.ts +++ b/queries/analytics/pageview/getPageviewMetrics.ts @@ -1,7 +1,7 @@ import prisma from 'lib/prisma'; import clickhouse from 'lib/clickhouse'; import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db'; -import { EVENT_TYPE } from 'lib/constants'; +import { DEFAULT_CREATED_AT, EVENT_TYPE } from 'lib/constants'; import { loadWebsite } from 'lib/query'; export async function getPageviewMetrics( @@ -33,7 +33,7 @@ async function relationalQuery( const { startDate, endDate, filters = {}, column } = criteria; const { rawQuery, parseFilters, toUuid } = prisma; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params: any = [ websiteId, resetDate, @@ -80,7 +80,7 @@ async function clickhouseQuery( const { startDate, endDate, filters = {}, column } = criteria; const { rawQuery, getDateFormat, parseFilters, getBetweenDates } = clickhouse; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params = { websiteId, eventType: column === 'event_name' ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView, diff --git a/queries/analytics/pageview/getPageviewStats.ts b/queries/analytics/pageview/getPageviewStats.ts index 01e4ab14..989a6d4d 100644 --- a/queries/analytics/pageview/getPageviewStats.ts +++ b/queries/analytics/pageview/getPageviewStats.ts @@ -1,7 +1,7 @@ import clickhouse from 'lib/clickhouse'; import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; import prisma from 'lib/prisma'; -import { EVENT_TYPE } from 'lib/constants'; +import { DEFAULT_CREATED_AT, EVENT_TYPE } from 'lib/constants'; import { loadWebsite } from 'lib/query'; export async function getPageviewStats( @@ -47,7 +47,7 @@ async function relationalQuery( } = criteria; const { toUuid, getDateQuery, parseFilters, rawQuery } = prisma; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params: any = [websiteId, resetDate, startDate, endDate]; const { filterQuery, joinSession } = parseFilters(filters, params); @@ -95,7 +95,7 @@ async function clickhouseQuery( getBetweenDates, } = clickhouse; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params = { websiteId }; const { filterQuery } = parseFilters(filters, params); diff --git a/queries/analytics/session/getSessionMetrics.ts b/queries/analytics/session/getSessionMetrics.ts index 57d4a736..ef8c79c5 100644 --- a/queries/analytics/session/getSessionMetrics.ts +++ b/queries/analytics/session/getSessionMetrics.ts @@ -1,7 +1,7 @@ import prisma from 'lib/prisma'; import clickhouse from 'lib/clickhouse'; import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db'; -import { EVENT_TYPE } from 'lib/constants'; +import { DEFAULT_CREATED_AT, EVENT_TYPE } from 'lib/constants'; import { loadWebsite } from 'lib/query'; export async function getSessionMetrics( @@ -21,7 +21,7 @@ async function relationalQuery( criteria: { startDate: Date; endDate: Date; column: string; filters: object }, ) { const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const { startDate, endDate, column, filters = {} } = criteria; const { toUuid, parseFilters, rawQuery } = prisma; const params: any = [websiteId, resetDate, startDate, endDate]; @@ -55,7 +55,7 @@ async function clickhouseQuery( const { startDate, endDate, column, filters = {} } = data; const { getDateFormat, parseFilters, getBetweenDates, rawQuery } = clickhouse; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params = { websiteId }; const { filterQuery } = parseFilters(filters, params); diff --git a/queries/analytics/stats/getWebsiteStats.ts b/queries/analytics/stats/getWebsiteStats.ts index 0021e793..5d5a1f9a 100644 --- a/queries/analytics/stats/getWebsiteStats.ts +++ b/queries/analytics/stats/getWebsiteStats.ts @@ -1,7 +1,7 @@ import prisma from 'lib/prisma'; import clickhouse from 'lib/clickhouse'; import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db'; -import { EVENT_TYPE } from 'lib/constants'; +import { DEFAULT_CREATED_AT, EVENT_TYPE } from 'lib/constants'; import { loadWebsite } from 'lib/query'; export async function getWebsiteStats( @@ -23,7 +23,7 @@ async function relationalQuery( const { startDate, endDate, filters = {} } = criteria; const { toUuid, getDateQuery, getTimestampInterval, parseFilters, rawQuery } = prisma; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params: any = [websiteId, resetDate, startDate, endDate]; const { filterQuery, joinSession } = parseFilters(filters, params); @@ -59,7 +59,7 @@ async function clickhouseQuery( const { startDate, endDate, filters = {} } = criteria; const { rawQuery, getDateFormat, getDateQuery, getBetweenDates, parseFilters } = clickhouse; const website = await loadWebsite(websiteId); - const resetDate = new Date(website?.resetAt || website?.createdAt); + const resetDate = new Date(website?.resetAt || DEFAULT_CREATED_AT); const params = { websiteId }; const { filterQuery } = parseFilters(filters, params);