Initial local backup snapshot
This commit is contained in:
commit
acd9e14ba5
367 changed files with 118038 additions and 0 deletions
66
server/requestPdf.ts
Normal file
66
server/requestPdf.ts
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
import { TRPCError } from "@trpc/server";
|
||||
import { generateMaterialEventPDF, generateReservationPDF } from "./pdfGenerator";
|
||||
|
||||
type RequestLike = {
|
||||
id: number;
|
||||
type: string;
|
||||
titre: string;
|
||||
status: string;
|
||||
createdAt: Date | string;
|
||||
dateSubmission?: Date | string | null;
|
||||
dateTraitement?: Date | string | null;
|
||||
commentaireAdmin?: string | null;
|
||||
formData?: string | null;
|
||||
};
|
||||
|
||||
export async function generateRequestPdfDocument(request: RequestLike) {
|
||||
let formData: any = {};
|
||||
try {
|
||||
formData = request.formData ? JSON.parse(request.formData) : {};
|
||||
} catch {
|
||||
formData = {};
|
||||
}
|
||||
|
||||
if (request.type === "demande_salle") {
|
||||
const pdfBuffer = await generateReservationPDF({
|
||||
titre: request.titre,
|
||||
status: request.status,
|
||||
createdAt: request.createdAt,
|
||||
dateSubmission: request.dateSubmission,
|
||||
dateTraitement: request.dateTraitement,
|
||||
commentaireAdmin: request.commentaireAdmin,
|
||||
formData,
|
||||
});
|
||||
|
||||
return {
|
||||
buffer: pdfBuffer,
|
||||
storageName: `reservations/pdf-${request.id}-${Date.now()}.pdf`,
|
||||
fileName: `Reservation_${request.id}_${formData.nomAssociation || "association"}.pdf`,
|
||||
contentType: "application/pdf",
|
||||
};
|
||||
}
|
||||
|
||||
if (request.type === "demande_materiel_evenementiel") {
|
||||
const pdfBuffer = await generateMaterialEventPDF({
|
||||
titre: request.titre,
|
||||
status: request.status,
|
||||
createdAt: request.createdAt,
|
||||
dateSubmission: request.dateSubmission,
|
||||
dateTraitement: request.dateTraitement,
|
||||
commentaireAdmin: request.commentaireAdmin,
|
||||
formData,
|
||||
});
|
||||
|
||||
return {
|
||||
buffer: pdfBuffer,
|
||||
storageName: `materiel-evenementiel/pdf-${request.id}-${Date.now()}.pdf`,
|
||||
fileName: `Materiel_Evenementiel_${request.id}_${formData.nomAssociation || formData.commune || "association"}.pdf`,
|
||||
contentType: "application/pdf",
|
||||
};
|
||||
}
|
||||
|
||||
throw new TRPCError({
|
||||
code: "BAD_REQUEST",
|
||||
message: "Le PDF n'est disponible que pour les demandes de salle et de matériel événementiel",
|
||||
});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue