Move parameters to param injection.

This commit is contained in:
Brian Cao 2023-01-17 00:20:18 -08:00
parent dd2d9dc3f5
commit 509739fc9a
2 changed files with 42 additions and 23 deletions

View file

@ -13,9 +13,20 @@ async function relationalQuery(websiteId, { startDate, endDate, event_name, colu
const { rawQuery, getEventDataColumnsQuery, getEventDataFilterQuery, toUuid } = prisma;
const params = [websiteId, startDate, endDate];
if (event_name) {
params.push(event_name);
}
const columnQuery = getEventDataColumnsQuery('event_data.event_data', columns, params);
const filterQuery =
Object.keys(filters).length > 0
? `and ${getEventDataFilterQuery('event_data.event_data', filters, params)}`
: '';
return rawQuery(
`select
${getEventDataColumnsQuery('event_data.event_data', columns)}
${columnQuery}
from event
join website
on event.website_id = website.website_id
@ -23,16 +34,14 @@ async function relationalQuery(websiteId, { startDate, endDate, event_name, colu
on event.event_id = event_data.event_id
where website_uuid = $1${toUuid()}
and event.created_at between $2 and $3
${event_name ? `and event_name = ${event_name}` : ''}
${
Object.keys(filters).length > 0
? `and ${getEventDataFilterQuery('event_data.event_data', filters)}`
: ''
}`,
${event_name ? `and event_name = $4` : ''}
${filterQuery}`,
params,
).then(results => {
return Object.keys(results[0]).map(a => {
return { x: a, y: results[0][`${a}`] };
const fields = Object.keys(columns);
return Object.keys(results[0]).map((a, i) => {
return { x: `${columns[fields[i]]}(${fields[i]})`, y: results[0][i] };
});
});
}