diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index 03bb429d..a440b7ab 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -12,8 +12,8 @@ export const createCaller = createCallerFactory({ "admin/nicht-ausstellen": await import("../src/pages/api/admin/nicht-ausstellen.ts"), "admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"), "admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"), - "aufnahme": await import("../src/pages/api/aufnahme/index.ts"), "ausweise": await import("../src/pages/api/ausweise/index.ts"), + "aufnahme": await import("../src/pages/api/aufnahme/index.ts"), "auth/access-token": await import("../src/pages/api/auth/access-token.ts"), "auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"), "auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"), @@ -24,13 +24,13 @@ export const createCaller = createCallerFactory({ "bilder/[id]": await import("../src/pages/api/bilder/[id].ts"), "geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"), "geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"), + "geg-nachweis-wohnen/[id]": await import("../src/pages/api/geg-nachweis-wohnen/[id].ts"), + "geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"), "objekt": await import("../src/pages/api/objekt/index.ts"), "rechnung/[id]": await import("../src/pages/api/rechnung/[id].ts"), "rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"), "rechnung": await import("../src/pages/api/rechnung/index.ts"), "ticket": await import("../src/pages/api/ticket/index.ts"), - "geg-nachweis-wohnen/[id]": await import("../src/pages/api/geg-nachweis-wohnen/[id].ts"), - "geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"), "user": await import("../src/pages/api/user/index.ts"), "user/self": await import("../src/pages/api/user/self.ts"), "verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"), diff --git a/src/pages/api/admin/bedarfsausweis-ausstellen.ts b/src/pages/api/admin/bedarfsausweis-ausstellen.ts index 4edb9311..55ac11e1 100644 --- a/src/pages/api/admin/bedarfsausweis-ausstellen.ts +++ b/src/pages/api/admin/bedarfsausweis-ausstellen.ts @@ -14,7 +14,7 @@ import { join } from "path"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { z } from "astro:content"; import { transport } from "#lib/mail.js"; -import { PutObjectCommand } from "@aws-sdk/client-s3"; +import { PutObjectCommand, GetObjectCommand } from "@aws-sdk/client-s3"; import { s3Client } from "#lib/s3.js"; import { createInvoice, @@ -130,10 +130,20 @@ export const POST = defineApiRoute({ voucherNumber = await getLexOfficeVoucherNumber(rechnung); } + let pdfRechnung, pdfRechnungError; + + const rechnungsCheckCommand = new GetObjectCommand({ + Bucket: "ibc-pdfs", + Key: `ID_${ausweis.id}_Rechnung.pdf`, + }); + // Hier müssen wir warten, damit wir sichergehen können, dass die Rechnung bei LexOffice existiert. - const [pdfRechnung, pdfRechnungError] = await tryCatch( - getLexOfficeRechnung(rechnung) - ); + if (rechnungsCheckCommand) { + pdfRechnung = rechnungsCheckCommand; + pdfRechnungError = null; + } else { + [pdfRechnung, pdfRechnungError] = await tryCatch(getLexOfficeRechnung(rechnung)); + } if (pdfRechnungError) { throw new APIError({