46 lines
1.8 KiB
TypeScript
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" };
|
|
}),
|
|
});
|