diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index bf37a23..e2cfd4b 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -14,6 +14,10 @@ export class PdfCreator { private templateDir = path.join(__dirname, '/templates'); private browser; + /** + * Main constructor. + * Initializes i18n(ext), Handlebars and puppeteer. + */ constructor() { i18next .use(Backend) @@ -34,6 +38,11 @@ export class PdfCreator { }); } + /** + * Generate sponsoring contract pdfs. + * @param runner The runner you want to generate the contracts for. + * @param locale The locale used for the contracts (default:en) + */ public async generateSponsoringContract(runner: Runner, locale: string = "en"): Promise { i18next.changeLanguage(locale); const template_source = fs.readFileSync(`${this.templateDir}/sponsoring_contract.html`, 'utf8'); diff --git a/src/controllers/PdfController.ts b/src/controllers/PdfController.ts index 1a8e0c1..3163e79 100644 --- a/src/controllers/PdfController.ts +++ b/src/controllers/PdfController.ts @@ -13,6 +13,7 @@ export class PdfController { @Post('/contracts') @OpenAPI({ description: "Generate Sponsoring contract pdfs from runner objects." }) async generateContracts(@Body({ validate: true }) runner: Runner, @Res() res: any, @QueryParam("locale") locale: string) { + await this.pdf; const contracts = await this.pdf.generateSponsoringContract(runner, locale); res.setHeader('content-type', 'application/pdf'); return await contracts;