api: improve get events sql and setup simple caching
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { createTRPCRouter, protectedProcedure } from '@/server/api/trpc';
|
||||
import * as cache from '@/server/cache';
|
||||
import { db } from '@/server/db';
|
||||
import { getUniqueEvents } from '@/server/services/event.service';
|
||||
import { getProjectBySlug } from '@/server/services/project.service';
|
||||
import type {
|
||||
IChartEvent,
|
||||
@@ -27,15 +28,8 @@ export const chartRouter = createTRPCRouter({
|
||||
const project = await getProjectBySlug(projectSlug);
|
||||
const events = await cache.getOr(
|
||||
`events_${project.id}`,
|
||||
1000 * 60 * 60,
|
||||
() =>
|
||||
db.event.findMany({
|
||||
take: 500,
|
||||
distinct: ['name'],
|
||||
where: {
|
||||
project_id: project.id,
|
||||
},
|
||||
})
|
||||
1000 * 60 * 60 * 24,
|
||||
() => getUniqueEvents({ projectId: project.id })
|
||||
);
|
||||
|
||||
return events;
|
||||
|
||||
12
apps/web/src/server/services/event.service.ts
Normal file
12
apps/web/src/server/services/event.service.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { db } from '../db';
|
||||
|
||||
export function getUniqueEvents({ projectId }: { projectId: string }) {
|
||||
return db.event.findMany({
|
||||
take: 500,
|
||||
distinct: ['name'],
|
||||
select: { name: true },
|
||||
where: {
|
||||
project_id: projectId,
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user