feature(dashboard): add ability to filter out events by profile id and ip (#101)

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-12-07 21:34:32 +01:00
committed by GitHub
parent 27ee623584
commit f4ad97d87d
39 changed files with 1148 additions and 542 deletions

View File

@@ -54,7 +54,7 @@ export async function postEvent(
{
type: 'incomingEvent',
payload: {
projectId: request.projectId,
projectId,
headers: getStringHeaders(request.headers),
event: {
...request.body,

View File

@@ -10,12 +10,17 @@ export async function importEvents(
}>,
reply: FastifyReply,
) {
const projectId = request.client?.projectId;
if (!projectId) {
throw new Error('Project ID is required');
}
const importedAt = formatClickhouseDate(new Date());
const values: IClickhouseEvent[] = request.body.map((event) => {
return {
...event,
properties: toDots(event.properties),
project_id: request.client?.projectId ?? '',
project_id: projectId,
created_at: formatClickhouseDate(event.created_at),
imported_at: importedAt,
};

View File

@@ -16,7 +16,10 @@ export async function updateProfile(
reply: FastifyReply,
) {
const { profileId, properties, ...rest } = request.body;
const projectId = request.projectId;
const projectId = request.client!.projectId;
if (!projectId) {
return reply.status(400).send('No projectId');
}
const ip = getClientIp(request)!;
const ua = request.headers['user-agent']!;
const uaInfo = parseUserAgent(ua, properties);
@@ -44,7 +47,10 @@ export async function incrementProfileProperty(
reply: FastifyReply,
) {
const { profileId, property, value } = request.body;
const projectId = request.projectId;
const projectId = request.client!.projectId;
if (!projectId) {
return reply.status(400).send('No projectId');
}
const profile = await getProfileById(profileId, projectId);
if (!profile) {
@@ -83,7 +89,10 @@ export async function decrementProfileProperty(
reply: FastifyReply,
) {
const { profileId, property, value } = request.body;
const projectId = request.projectId;
const projectId = request.client?.projectId;
if (!projectId) {
return reply.status(400).send('No projectId');
}
const profile = await getProfileById(profileId, projectId);
if (!profile) {