Files
rdv/src/lib/trpc/routers/presetdata.router.ts
2026-01-05 22:40:27 +02:00

46 lines
1.8 KiB
TypeScript

import { dbPresetData } from "$lib/server/db/presetdata.db";
import { logger } from "$lib/server/logger";
import { zDDFilters, zPresetDataEntry } from "$lib/utils/data.types";
import { z } from "zod";
import { createTRPCRouter, protectedProcedure } from "../t";
export const presetDataRouter = createTRPCRouter({
getAll: protectedProcedure.input(zDDFilters).mutation(async ({ input }) => {
const { draw, date } = input;
if (!draw) {
logger.warn("[presetData.getAll] Draw is required but not provided");
return { ok: false, detail: "Draw is required to fetch data", data: [] };
}
logger.info(`[presetData.getAll] Fetching preset data for draw ${draw.id}, date ${date}`);
const data = await dbPresetData.getDataByDraw(date, +draw.id.split(":")[1]);
logger.info(`[presetData.getAll] Found ${data.length} preset data entries`);
return {
data,
ok: true,
detail: "Data found",
};
}),
insert: protectedProcedure.input(z.array(zPresetDataEntry)).mutation(async ({ input }) => {
logger.info(`[presetData.insert] Inserting ${input.length} preset data entries`);
const data = await dbPresetData.insertData(input);
logger.info(`[presetData.insert] Successfully inserted ${data?.length} entries`);
return {
ok: true,
detail: "Data inserted",
data,
};
}),
delete: protectedProcedure
.input(z.object({ date: z.string(), ids: z.array(z.string()) }))
.mutation(async ({ input }) => {
logger.info(
`[presetData.delete] Deleting ${input.ids.length} preset data entries for date ${input.date}`,
);
await dbPresetData.deleteDataByIds(input.date, input.ids);
logger.info("[presetData.delete] Successfully deleted preset data entries");
return { ok: true, detail: "Data deleted" };
}),
});