dashboard: add bots to overview

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-04-02 14:30:29 +02:00
parent 11ad077472
commit 16a1c08160
6 changed files with 159 additions and 13 deletions

View File

@@ -1,7 +1,12 @@
import { createTRPCRouter, protectedProcedure } from '@/trpc/api/trpc';
import {
createTRPCRouter,
protectedProcedure,
publicProcedure,
} from '@/trpc/api/trpc';
import { escape } from 'sqlstring';
import { z } from 'zod';
import { db } from '@openpanel/db';
import { chQuery, convertClickhouseDateToJs, db } from '@openpanel/db';
export const eventRouter = createTRPCRouter({
updateEventMeta: protectedProcedure
@@ -26,4 +31,40 @@ export const eventRouter = createTRPCRouter({
update: { icon, color, conversion },
});
}),
bots: publicProcedure
.input(
z.object({
projectId: z.string(),
cursor: z.number().optional(),
limit: z.number().default(8),
})
)
.query(async ({ input: { projectId, cursor, limit } }) => {
const [events, counts] = await Promise.all([
chQuery<{
id: string;
project_id: string;
name: string;
type: string;
path: string;
created_at: string;
}>(
`SELECT * FROM events_bots WHERE project_id = ${escape(projectId)} ORDER BY created_at DESC LIMIT ${limit} OFFSET ${(cursor ?? 0) * limit}`
),
chQuery<{
count: number;
}>(
`SELECT count(*) as count FROM events_bots WHERE project_id = ${escape(projectId)}`
),
]);
return {
data: events.map((item) => ({
...item,
createdAt: convertClickhouseDateToJs(item.created_at),
})),
count: counts[0]?.count ?? 0,
};
}),
});