Implemented language selection by query param

ref #5
This commit is contained in:
Nicolai Ort 2021-02-05 21:27:14 +01:00
parent a596188c00
commit 6f81566cb8
3 changed files with 7 additions and 6 deletions

View File

@ -34,7 +34,8 @@ export class PdfCreator {
});
}
public async generateSponsoringContract(runner: Runner): Promise<any> {
public async generateSponsoringContract(runner: Runner, locale: string = "en"): Promise<any> {
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 })

View File

@ -1,4 +1,4 @@
import { Body, JsonController, Post, Res } from 'routing-controllers';
import { Body, JsonController, Post, QueryParam, Res } from 'routing-controllers';
import { OpenAPI } from 'routing-controllers-openapi';
import { Runner } from '../models/Runner';
import { PdfCreator } from '../PdfCreator';
@ -12,8 +12,8 @@ export class PdfController {
@Post('/contracts')
@OpenAPI({ description: "Generate Sponsoring contract pdfs from runner objects." })
async generateContracts(@Body({ validate: true }) runner: Runner, @Res() res: any) {
const contracts = await this.pdf.generateSponsoringContract(runner);
async generateContracts(@Body({ validate: true }) runner: Runner, @Res() res: any, @QueryParam("locale") locale: string) {
const contracts = await this.pdf.generateSponsoringContract(runner, locale);
res.setHeader('content-type', 'application/pdf');
return await contracts;
}

View File

@ -8,8 +8,8 @@
<div class="page">
<p>ID: {{runner.id}}</p>
<p>{{__ "firstname"}}: {{runner.firstname}}</p>
<p>{__ "lastname"}: {{runner.lastname}}</p>
<p>{__ "group"}: {{runner.group.name}}</p>
<p>{{__ "lastname"}}: {{runner.lastname}}</p>
<p>{{__ "group"}}: {{runner.group.name}}</p>
</div>
</body>
</html>