From ee8ba99cc7778f89a8bb99400c7d1cf1a12898f7 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 6 Feb 2021 21:37:56 +0100 Subject: [PATCH] Fixed the controller not waiting for initialization ref #5 --- src/PdfCreator.ts | 8 +++++--- src/controllers/PdfController.ts | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/PdfCreator.ts b/src/PdfCreator.ts index 9c9cdff..0f74596 100644 --- a/src/PdfCreator.ts +++ b/src/PdfCreator.ts @@ -20,11 +20,13 @@ export class PdfCreator { * Initializes i18n(ext), Handlebars and puppeteer. */ constructor() { - this.init().then(() => { - return this; - }) + this.init(); } + /** + * Main constructor. + * Initializes i18n(ext), Handlebars and puppeteer. + */ public async init() { await i18next .use(Backend) diff --git a/src/controllers/PdfController.ts b/src/controllers/PdfController.ts index 0f6ac16..b99e486 100644 --- a/src/controllers/PdfController.ts +++ b/src/controllers/PdfController.ts @@ -11,10 +11,15 @@ import { PdfCreator } from '../PdfCreator'; @JsonController() export class PdfController { private pdf: PdfCreator = new PdfCreator(); + private initialized: boolean = false; @Post('/contracts') @OpenAPI({ description: "Generate Sponsoring contract pdfs from runner objects.
You can choose your prefered locale by passing the 'locale' query-param." }) async generateContracts(@Body({ validate: true }) runners: Runner | Runner[], @Res() res: any, @QueryParam("locale") locale: string) { + if (!this.initialized) { + await this.pdf.init(); + this.initialized = true; + } if (!Array.isArray(runners)) { runners = [runners]; }