Merge branch 'dev' of https://github.com/umami-software/umami into feat/um-376-retention-report

This commit is contained in:
Francis Cao 2023-08-07 14:04:05 -07:00
commit fc5a1f458b
23 changed files with 156 additions and 168 deletions

View file

@ -21,7 +21,7 @@ export default async (
await useAuth(req, res);
if (req.method === 'GET') {
const { websiteId, startAt, endAt, eventName } = req.query;
const { websiteId, startAt, endAt, event } = req.query;
if (!(await canViewWebsite(req.auth, websiteId))) {
return unauthorized(res);
@ -33,7 +33,7 @@ export default async (
const data = await getEventDataEvents(websiteId, {
startDate,
endDate,
eventName,
event,
});
return ok(res, data);

View file

@ -11,6 +11,7 @@ export interface EventDataFieldsRequestBody {
startDate: string;
endDate: string;
};
field?: string;
}
export default async (
@ -27,7 +28,10 @@ export default async (
return unauthorized(res);
}
const data = await getEventDataFields(websiteId, new Date(+startAt), new Date(+endAt), field);
const startDate = new Date(+startAt);
const endDate = new Date(+endAt);
const data = await getEventDataFields(websiteId, { startDate, endDate, field });
return ok(res, data);
}

View file

@ -32,16 +32,18 @@ export default async (
const endDate = new Date(+endAt);
const results = await getEventDataFields(websiteId, { startDate, endDate });
const events = new Set();
const data = results.reduce(
(obj, row) => {
events.add(row.fieldName);
obj.records += Number(row.total);
return obj;
},
{ fields: results.length, records: 0 },
);
return ok(res, data);
return ok(res, { ...data, events: events.size });
}
return methodNotAllowed(res);

View file

@ -13,7 +13,7 @@ export interface InsightsRequestBody {
};
fields: { name: string; type: string; value: string }[];
filters: string[];
groups: string[];
groups: { name: string; type: string }[];
}
export default async (
@ -27,21 +27,18 @@ export default async (
const {
websiteId,
dateRange: { startDate, endDate },
fields,
filters,
groups,
filters,
} = req.body;
if (!(await canViewWebsite(req.auth, websiteId))) {
return unauthorized(res);
}
const data = await getInsights(websiteId, {
const data = await getInsights(websiteId, groups, {
...filters,
startDate: new Date(startDate),
endDate: new Date(endDate),
fields,
filters,
groups,
});
return ok(res, data);