59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
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;
|