Merge Session/Event/Pageview CH

This commit is contained in:
Brian Cao 2022-09-12 09:55:34 -07:00
parent d377ef86e7
commit 52e036964b
18 changed files with 237 additions and 294 deletions

View file

@ -59,7 +59,7 @@ export default async (req, res) => {
await useSession(req, res);
const {
session: { website_id, session_id, session_uuid },
session: { website_id, session },
} = req;
const { type, payload } = getJsonBody(req);
@ -73,12 +73,11 @@ export default async (req, res) => {
const event_uuid = uuid();
if (type === 'pageview') {
await savePageView(website_id, { session_id, session_uuid, url, referrer });
await savePageView(website_id, { session, url, referrer });
} else if (type === 'event') {
await saveEvent(website_id, {
session,
event_uuid,
session_id,
session_uuid,
url,
event_name,
event_data,
@ -87,7 +86,10 @@ export default async (req, res) => {
return badRequest(res);
}
const token = createToken({ website_id, session_id, session_uuid }, secret());
const token = createToken(
{ website_id, session_id: session.session_id, session_uuid: session.session_uuid },
secret(),
);
return send(res, token);
};

View file

@ -48,11 +48,16 @@ export default async (req, res) => {
const endDate = new Date(+end_at);
if (sessionColumns.includes(type)) {
let data = await getSessionMetrics(websiteId, startDate, endDate, type, {
os,
browser,
device,
country,
let data = await getSessionMetrics(websiteId, {
startDate,
endDate,
field: type,
filters: {
os,
browser,
device,
country,
},
});
if (type === 'language') {
@ -101,7 +106,13 @@ export default async (req, res) => {
query: type === 'query' && table !== 'event' ? true : undefined,
};
const data = await getPageviewMetrics(websiteId, startDate, endDate, column, table, filters);
const data = await getPageviewMetrics(websiteId, {
startDate,
endDate,
column,
table,
filters,
});
return ok(res, data);
}

View file

@ -26,20 +26,34 @@ export default async (req, res) => {
}
const [pageviews, sessions] = await Promise.all([
getPageviewStats(websiteId, startDate, endDate, tz, unit, '*', {
url,
referrer,
os,
browser,
device,
country,
getPageviewStats(websiteId, {
startDate,
endDate,
tz,
unit,
count: '*',
filters: {
url,
referrer,
os,
browser,
device,
country,
},
}),
getPageviewStats(websiteId, startDate, endDate, tz, unit, 'distinct pageview.', {
url,
os,
browser,
device,
country,
getPageviewStats(websiteId, {
startDate,
endDate,
tz,
unit,
count: 'distinct pageview.',
filters: {
url,
os,
browser,
device,
country,
},
}),
]);