import type { PageServerLoad, Actions } from "./$types"; import { fail, redirect } from "@sveltejs/kit" import { toInt } from "$lib/util" import { getAllFiles, getRecordFiles, getEstimateFiles, generateEstimatePDF, generateRecordPDF } from "$lib/server/docstore"; export const load: PageServerLoad = async ({ locals }) => { return { documents: await getAllFiles(locals.user), records: await getRecordFiles(locals.user), estimates: await getEstimateFiles(locals.user) } } export const actions = { create_estimate: async ({ locals, request }) => { const data = await request.formData(); const quarter = toInt(data.get("quarter") ?? ""); const year = toInt(data.get("year") ?? ""); if (isNaN(year) || isNaN(quarter) || quarter < 1 || quarter > 4) { return fail(400, { success: false, message: "Invalid parameter", year: year, quarter: quarter }); } try { await generateEstimatePDF(locals.user, year, quarter); } catch (e) { console.log(e); return fail(403, { success: false, message: e.toString(), year: year, quarter: quarter }); } return { success: true }; }, create_record: async ({ locals, request }) => { const data = await request.formData(); const month = toInt(data.get("month") ?? ""); const year = toInt(data.get("year") ?? ""); if (isNaN(year) || isNaN(month) || month < 1 || month > 12) { return fail(400, { success: false, message: "Invalid parameter", year: year, month: month }); } try { await generateRecordPDF(locals.user, year, month); } catch (e) { console.log(e); return fail(403, { success: false, message: e.toString(), year: year, month: month }); } redirect(303, "dokumente") return { success: true }; } } satisfies Actions;