Verbesserungen und Datenumzug

This commit is contained in:
Moritz Utcke
2025-02-20 16:50:21 +11:00
parent 8049af9f17
commit d538f754c4
22 changed files with 1912 additions and 141 deletions

View File

@@ -1,5 +1,5 @@
import { z } from "zod";
import { BedarfsausweisWohnen, Enums, RechnungSchema, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen, prisma } from "@ibcornelsen/database/server";
import { Enums, RechnungSchema, prisma } from "@ibcornelsen/database/server";
import { mollieClient } from "#lib/mollie.js";
import { PaymentMethod } from "@mollie/api-client";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
@@ -8,6 +8,7 @@ import {
authorizationMiddleware,
} from "#lib/middleware/authorization.js";
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
export const PUT = defineApiRoute({
meta: {
@@ -50,33 +51,21 @@ export const PUT = defineApiRoute({
// TODO: Services Implementieren
let ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
ausweis = await prisma.bedarfsausweisWohnen.findUnique({
where: {
uid: ausweis_uid
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
ausweis = await prisma.verbrauchsausweisGewerbe.findUnique({
where: {
uid: ausweis_uid
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
// Wir müssen überprüfen, ob dem Nutzer der Ausweis tatsächlich gehört.
ausweis = await prisma.verbrauchsausweisWohnen.findUnique({
where: {
uid: ausweis_uid,
},
});
} else {
const adapter = getPrismaAusweisAdapter(ausweis_uid);
if (!adapter) {
throw new APIError({
code: "BAD_REQUEST",
message: "Ausweisart nicht unterstützt.",
});
message: "Ungültige Ausweis UID"
})
}
const ausweis = await adapter.findUnique({
where: {
uid: ausweis_uid
}
})
if (!ausweis) {
throw new APIError({
code: "NOT_FOUND",
@@ -113,40 +102,14 @@ export const PUT = defineApiRoute({
});
}
if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
await prisma.bedarfsausweisWohnen.update({
where: {
uid: ausweis_uid
},
data: {
bestellt: true
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
await prisma.verbrauchsausweisGewerbe.update({
where: {
uid: ausweis_uid
},
data: {
bestellt: true
}
})
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
// Wir müssen überprüfen, ob dem Nutzer der Ausweis tatsächlich gehört.
await prisma.verbrauchsausweisWohnen.update({
where: {
uid: ausweis_uid
},
data: {
bestellt: true
}
});
} else {
throw new APIError({
code: "BAD_REQUEST",
message: "Ausweisart nicht unterstützt.",
});
}
await adapter.update({
where: {
uid: ausweis_uid
},
data: {
bestellt: true
}
})
if (bezahlmethode === Enums.Bezahlmethoden.rechnung) {
return { uid: rechnung.uid }
@@ -163,7 +126,7 @@ export const PUT = defineApiRoute({
},
method: input.bezahlmethode as PaymentMethod,
description: "Verbrauchsausweis Wohnen 2016",
redirectUrl: "https://ibcornelsen.de/payment/success",
redirectUrl: `https://ibcornelsen.de/payment/success?a=${ausweis.uid}&r=${rechnung.uid}`,
webhookUrl: `http://ibcornelsen.de/api/webhooks/mollie?uid=${rechnung.uid}`,
});