diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index e2cfd4b..aed8070 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -43,11 +43,11 @@ export class PdfCreator { * @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 { + public async generateSponsoringContract(runners: Runner[], locale: string = "en"): Promise { i18next.changeLanguage(locale); const template_source = fs.readFileSync(`${this.templateDir}/sponsoring_contract.html`, 'utf8'); const template = Handlebars.compile(template_source); - const result = template({ runner: runner }) + const result = template({ runners }) return await this.renderPdf(result, { format: "A5", landscape: true }); } diff --git a/src/controllers/PdfController.ts b/src/controllers/PdfController.ts index 1a8e0c1..5bd60ca 100644 --- a/src/controllers/PdfController.ts +++ b/src/controllers/PdfController.ts @@ -12,9 +12,12 @@ 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) { - const contracts = await this.pdf.generateSponsoringContract(runner, locale); + async generateContracts(@Body({ validate: true }) runners: Runner | Runner[], @Res() res: any, @QueryParam("locale") locale: string) { + if (!Array.isArray(runners)) { + runners = [runners] + } + const contracts = await this.pdf.generateSponsoringContract(runners, locale); res.setHeader('content-type', 'application/pdf'); - return await contracts; + return contracts; } } diff --git a/src/templates/sponsoring_contract.html b/src/templates/sponsoring_contract.html index d21ada1..dae871f 100644 --- a/src/templates/sponsoring_contract.html +++ b/src/templates/sponsoring_contract.html @@ -5,11 +5,13 @@ + {{#each runners}}
-

ID: {{runner.id}}

-

{{__ "firstname"}}: {{runner.firstname}}

-

{{__ "lastname"}}: {{runner.lastname}}

-

{{__ "group"}}: {{runner.group.name}}

+

ID: {{this.id}}

+

{{__ "firstname"}}: {{this.firstname}}

+

{{__ "lastname"}}: {{this.lastname}}

+

{{__ "group"}}: {{this.group.name}}

+ {{/each}} \ No newline at end of file