From ed2070abd9db13fe81a86c4a1c0ae648687aafc9 Mon Sep 17 00:00:00 2001 From: Bastian Wagner Date: Thu, 12 Mar 2026 15:09:07 +0100 Subject: [PATCH] pdf --- api/src/modules/key/key.controller.ts | 10 ++++------ api/src/modules/key/key.module.ts | 3 ++- api/src/modules/key/key.service.ts | 16 +++++++++++++++- .../handover-dialog.component.html | 4 ++-- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/api/src/modules/key/key.controller.ts b/api/src/modules/key/key.controller.ts index 03b3628..9684962 100644 --- a/api/src/modules/key/key.controller.ts +++ b/api/src/modules/key/key.controller.ts @@ -84,13 +84,11 @@ export class KeyController { } @Post('pdf') - async generatePdf(@Body() dto: KeyHandoverDto, @Res() res: Response): Promise { - const pdfBuffer = await this.pdfService.generatePdf(dto); + async generatePdf(@Body() dto: KeyHandoverDto, @Res() res: Response) { + const pdfBuffer = await this.service.fetchPdf(dto); res.setHeader('Content-Type', 'application/pdf'); - res.setHeader('Content-Disposition', 'attachment; filename="schluesseluebergabe.pdf"'); - res.setHeader('Content-Length', pdfBuffer.length); - - res.end(pdfBuffer); + res.setHeader('Content-Disposition', 'inline; filename="test.pdf"'); + res.send(pdfBuffer); } } diff --git a/api/src/modules/key/key.module.ts b/api/src/modules/key/key.module.ts index f61bae6..f78b135 100644 --- a/api/src/modules/key/key.module.ts +++ b/api/src/modules/key/key.module.ts @@ -8,10 +8,11 @@ import { ConfigService } from '@nestjs/config'; import { MailModule } from '../mail/mail.module'; import { SseModule } from '../realtime/sse/sse.module'; import { PdfModule } from 'src/shared/pdf/pdf.module'; +import { HttpModule } from '@nestjs/axios'; @Module({ controllers: [KeyController], providers: [KeyService, ConfigService], - imports: [DatabaseModule, AuthModule, SharedServiceModule, MailModule, SseModule, PdfModule], + imports: [DatabaseModule, AuthModule, SharedServiceModule, MailModule, SseModule, PdfModule, HttpModule], }) export class KeyModule {} diff --git a/api/src/modules/key/key.service.ts b/api/src/modules/key/key.service.ts index 1fc430b..760edfc 100644 --- a/api/src/modules/key/key.service.ts +++ b/api/src/modules/key/key.service.ts @@ -12,6 +12,9 @@ import { FindOperator, IsNull, Not } from 'typeorm'; import { ConfigService } from '@nestjs/config'; import { MailService } from '../mail/mail.service'; import { SseService } from '../realtime/sse/sse.service'; +import { KeyHandoverDto } from 'src/model/dto/key-handover.dto'; +import { firstValueFrom } from 'rxjs'; +import { HttpService } from '@nestjs/axios'; @Injectable() export class KeyService { @@ -23,7 +26,8 @@ export class KeyService { private readonly helper: HelperService, private readonly configService: ConfigService, private readonly mailService: MailService, - private readonly sseService: SseService + private readonly sseService: SseService, + private readonly httpService: HttpService ) { console.log("INIT KEYSERVICE") } @@ -229,4 +233,14 @@ export class KeyService { this.sendKeysToSSE(k) return k; } + + async fetchPdf(dto: KeyHandoverDto): Promise { + const response = await firstValueFrom( + this.httpService.post('http://192.168.30.101:3500/pdf/keyhandover',dto, { + responseType: 'arraybuffer', + }), + ); + + return Buffer.from(response.data); + } } diff --git a/client/src/app/modules/keys/components/handover-dialog/handover-dialog.component.html b/client/src/app/modules/keys/components/handover-dialog/handover-dialog.component.html index 77c6980..f57c847 100644 --- a/client/src/app/modules/keys/components/handover-dialog/handover-dialog.component.html +++ b/client/src/app/modules/keys/components/handover-dialog/handover-dialog.component.html @@ -41,11 +41,11 @@ - +