improve(dashboard): better event details

This commit is contained in:
Carl-Gerhard Lindesvärd
2025-05-13 23:09:37 +02:00
parent dd39ff70a9
commit 2cd358e1bb
15 changed files with 607 additions and 213 deletions

View File

@@ -21,6 +21,7 @@ import { createSqlBuilder } from '../sql-builder';
import { getEventFiltersWhereClause } from './chart.service';
import type { IClickhouseProfile, IServiceProfile } from './profile.service';
import {
getProfileById,
getProfiles,
transformProfile,
upsertProfile,
@@ -830,7 +831,7 @@ class EventService {
id: string;
createdAt?: Date;
}) {
return clix(this.client)
const event = await clix(this.client)
.select<IClickhouseEvent>(['*'])
.from('events')
.where('project_id', '=', projectId)
@@ -852,6 +853,15 @@ class EventService {
return transformEvent(res[0]);
});
if (event?.profileId) {
const profile = await getProfileById(event?.profileId, projectId);
if (profile) {
event.profile = profile;
}
}
return event;
}
async getList({

View File

@@ -1,3 +1,6 @@
import { TABLE_NAMES, ch } from '../clickhouse/client';
import { clix } from '../clickhouse/query-builder';
export type IClickhouseSession = {
id: string;
profile_id: string;
@@ -39,3 +42,19 @@ export type IClickhouseSession = {
version: number;
properties: Record<string, string>;
};
class SessionService {
constructor(private client: typeof ch) {}
byId(sessionId: string, projectId: string) {
return clix(this.client)
.select<IClickhouseSession>(['*'])
.from(TABLE_NAMES.sessions)
.where('id', '=', sessionId)
.where('project_id', '=', projectId)
.execute()
.then((res) => res[0]);
}
}
export const sessionService = new SessionService(ch);