template + route & controller

This commit is contained in:
Julian Krauser 2025-03-16 17:42:51 +01:00
parent d6a13d657b
commit 2f72cc3925
3 changed files with 99 additions and 6 deletions

View file

@ -118,6 +118,44 @@ export async function getMemberStatisticsById(req: Request, res: Response): Prom
res.json(MemberFactory.mapToMemberStatistic(member));
}
/**
* @description get member printout by id
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function getMemberPrintoutById(req: Request, res: Response): Promise<any> {
const memberId = req.params.id;
let member = await MemberService.getById(memberId);
let memberships = await MembershipService.getAll(memberId);
let awards = await MemberAwardService.getAll(memberId);
let qualifications = await MemberQualificationService.getAll(memberId);
let positions = await MemberExecutivePositionService.getAll(memberId);
let communications = await CommunicationService.getAll(memberId);
let pdf = await PdfExport.renderFile({
title: "Mitglieder-Ausdruck",
template: "member",
saveToDisk: false,
data: {
member,
memberships,
awards,
qualifications,
positions,
communications,
},
});
let pdfbuffer = Buffer.from(pdf);
res.setHeader("Content-Type", "application/pdf");
res.setHeader("Content-Length", pdfbuffer.byteLength);
res.setHeader("Content-Disposition", "inline; filename=preview.pdf");
res.send(pdfbuffer);
}
/**
* @description get memberships by member
* @param req {Request} Express req object