Datenbank und ID Generierung
This commit is contained in:
@@ -39,7 +39,7 @@ export const PUT = defineApiRoute({
|
||||
})
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.Aufnahme)
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Aufnahme)
|
||||
|
||||
const aufnahme = await prisma.aufnahme.create({
|
||||
data: {
|
||||
|
||||
@@ -119,7 +119,7 @@ export const DELETE = defineApiRoute({
|
||||
}
|
||||
})
|
||||
|
||||
const event_id = generatePrefixedId(6, VALID_UUID_PREFIXES.Ticket)
|
||||
const event_id = generatePrefixedId(9, VALID_UUID_PREFIXES.Ticket)
|
||||
|
||||
// Wir erstellen ein Event, dass der Nachweis storniert wurde
|
||||
// Dann können wir das in der Historie anzeigen
|
||||
|
||||
@@ -46,7 +46,7 @@ export const PUT = defineApiRoute({
|
||||
})
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.BedarfsausweisGewerbe)
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.BedarfsausweisGewerbe)
|
||||
|
||||
const nachweis = await prisma.bedarfsausweisGewerbe.create({
|
||||
data: {
|
||||
|
||||
@@ -122,7 +122,7 @@ export const DELETE = defineApiRoute({
|
||||
}
|
||||
})
|
||||
|
||||
const event_id = generatePrefixedId(6, VALID_UUID_PREFIXES.Ticket)
|
||||
const event_id = generatePrefixedId(9, VALID_UUID_PREFIXES.Ticket)
|
||||
|
||||
// Wir erstellen ein Event, dass der Ausweis storniert wurde
|
||||
// Dann können wir das in der Historie anzeigen
|
||||
|
||||
@@ -37,7 +37,7 @@ export const PUT = defineApiRoute({
|
||||
);
|
||||
const buffer = Buffer.from(dataWithoutPrefix, "base64");
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.Bild)
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Bild)
|
||||
|
||||
const bild = await prisma.bild.create({
|
||||
data: {
|
||||
|
||||
@@ -120,7 +120,7 @@ export const DELETE = defineApiRoute({
|
||||
})
|
||||
|
||||
|
||||
const event_id = generatePrefixedId(6, VALID_UUID_PREFIXES.Ticket)
|
||||
const event_id = generatePrefixedId(9, VALID_UUID_PREFIXES.Ticket)
|
||||
// Wir erstellen ein Event, dass der Nachweis storniert wurde
|
||||
// Dann können wir das in der Historie anzeigen
|
||||
await prisma.event.create({
|
||||
|
||||
@@ -50,7 +50,7 @@ export const PUT = defineApiRoute({
|
||||
})
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.GEGNachweisGewerbe)
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.GEGNachweisGewerbe)
|
||||
|
||||
const nachweis = await prisma.gEGNachweisGewerbe.create({
|
||||
data: {
|
||||
|
||||
@@ -125,7 +125,7 @@ export const DELETE = defineApiRoute({
|
||||
// Dann können wir das in der Historie anzeigen
|
||||
await prisma.event.create({
|
||||
data: {
|
||||
id: generatePrefixedId(6, VALID_UUID_PREFIXES.Event),
|
||||
id: generatePrefixedId(9, VALID_UUID_PREFIXES.Event),
|
||||
title: "Nachweis storniert",
|
||||
description: ((user.rolle === "ADMIN") && (nachweis.benutzer_id !== user.id)) ? "Nachweis wurde von einem Administrator storniert." : "Nachweis wurde vom Besitzer storniert.",
|
||||
benutzer: {
|
||||
|
||||
@@ -50,7 +50,7 @@ export const PUT = defineApiRoute({
|
||||
})
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.GEGNachweisWohnen)
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.GEGNachweisWohnen)
|
||||
|
||||
const nachweis = await prisma.gEGNachweisWohnen.create({
|
||||
data: {
|
||||
|
||||
@@ -17,7 +17,7 @@ export const PUT = defineApiRoute({
|
||||
}),
|
||||
middleware: authorizationMiddleware,
|
||||
async fetch(input, context, user) {
|
||||
const id = generatePrefixedId(6, "OB")
|
||||
const id = generatePrefixedId(9, "OB")
|
||||
|
||||
console.log(id);
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ export const PUT = defineApiRoute({
|
||||
})
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.GEGEinpreisung)
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.GEGEinpreisung)
|
||||
|
||||
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen) {
|
||||
einpreisung = await prisma.gEGEinpreisung.create({
|
||||
|
||||
@@ -37,6 +37,8 @@ export const PUT = defineApiRoute({
|
||||
betrag: true,
|
||||
storniert_am: true,
|
||||
transaktions_referenz: true,
|
||||
created_at: true,
|
||||
updated_at: true
|
||||
})
|
||||
),
|
||||
output: z.object({
|
||||
@@ -87,7 +89,7 @@ export const PUT = defineApiRoute({
|
||||
betrag += servicePriceList[service]
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.Rechnung);
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Rechnung);
|
||||
|
||||
// Wir erstellen eine neue Rechnung in unserer Datenbank.
|
||||
let rechnung: Rechnung | null = null;
|
||||
@@ -176,7 +178,8 @@ export const PUT = defineApiRoute({
|
||||
method: input.bezahlmethode as PaymentMethod,
|
||||
description: "Verbrauchsausweis Wohnen 2016",
|
||||
redirectUrl: `https://online-energieausweis.org/payment/success?a=${ausweis.id}&r=${rechnung.id}`,
|
||||
webhookUrl: `http://online-energieausweis.org/api/webhooks/mollie?uid=${rechnung.id}`,
|
||||
webhookUrl: `https://online-energieausweis.org/api/webhooks/mollie?uid=${rechnung.id}`,
|
||||
cancelUrl: `https://online-energieausweis.org/kundendaten?a=${ausweis.id}&r=${rechnung.id}`
|
||||
});
|
||||
|
||||
const checkoutUrl = payment.getCheckoutUrl();
|
||||
|
||||
@@ -28,7 +28,7 @@ export const PUT = defineApiRoute({
|
||||
id: UUidWithPrefix,
|
||||
}),
|
||||
async fetch(input, ctx) {
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.Ticket)
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Ticket)
|
||||
|
||||
const ticket = await prisma.tickets.create({
|
||||
data: {
|
||||
|
||||
@@ -29,7 +29,7 @@ export const PUT = defineApiRoute({
|
||||
})
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.Unterlage)
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.Unterlage)
|
||||
|
||||
await prisma.unterlage.create({
|
||||
data: {
|
||||
|
||||
@@ -13,7 +13,9 @@ export const POST = defineApiRoute({
|
||||
input: BenutzerSchema.omit({
|
||||
id: true,
|
||||
lex_office_id: true,
|
||||
rolle: true
|
||||
rolle: true,
|
||||
created_at: true,
|
||||
updated_at: true
|
||||
}),
|
||||
middleware: authorizationMiddleware,
|
||||
async fetch(input, context, user) {
|
||||
@@ -103,7 +105,7 @@ export const PUT = defineApiRoute({
|
||||
})
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.User);
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.User);
|
||||
|
||||
const user = await prisma.benutzer.create({
|
||||
data: {
|
||||
|
||||
@@ -120,7 +120,7 @@ export const DELETE = defineApiRoute({
|
||||
// Dann können wir das in der Historie anzeigen
|
||||
await prisma.event.create({
|
||||
data: {
|
||||
id: generatePrefixedId(6, VALID_UUID_PREFIXES.Event),
|
||||
id: generatePrefixedId(9, VALID_UUID_PREFIXES.Event),
|
||||
title: "Ausweis storniert",
|
||||
description: ((user.rolle === "ADMIN") && (ausweis.benutzer_id !== user.id)) ? "Ausweis wurde von einem Administrator storniert." : "Ausweis wurde vom Besitzer storniert.",
|
||||
benutzer: {
|
||||
|
||||
@@ -48,7 +48,7 @@ export const PUT = defineApiRoute({
|
||||
})
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, VALID_UUID_PREFIXES.VerbrauchsausweisGewerbe)
|
||||
const id = generatePrefixedId(9, VALID_UUID_PREFIXES.VerbrauchsausweisGewerbe)
|
||||
|
||||
const createdAusweis = await prisma.verbrauchsausweisGewerbe.create({
|
||||
data: {
|
||||
|
||||
@@ -121,7 +121,7 @@ export const DELETE = defineApiRoute({
|
||||
// Dann können wir das in der Historie anzeigen
|
||||
await prisma.event.create({
|
||||
data: {
|
||||
id: generatePrefixedId(6, VALID_UUID_PREFIXES.Event),
|
||||
id: generatePrefixedId(9, VALID_UUID_PREFIXES.Event),
|
||||
title: "Ausweis storniert",
|
||||
description: ((user.rolle === "ADMIN") && (ausweis.benutzer_id !== user.id)) ? "Ausweis wurde von einem Administrator storniert." : "Ausweis wurde vom Besitzer storniert.",
|
||||
benutzer: {
|
||||
|
||||
@@ -51,7 +51,7 @@ export const PUT = defineApiRoute({
|
||||
})
|
||||
}
|
||||
|
||||
const id = generatePrefixedId(6, "VW");
|
||||
const id = generatePrefixedId(9, "VW");
|
||||
|
||||
const createdAusweis = await prisma.verbrauchsausweisWohnen.create({
|
||||
data: {
|
||||
|
||||
@@ -4,6 +4,8 @@ import KundendatenModule from "#modules/KundendatenModule.svelte";
|
||||
import AusweisLayout from "#layouts/AusweisLayoutPruefung.astro";
|
||||
import { Enums } from "#lib/client/prisma";
|
||||
import { getCurrentUser } from "#lib/server/user";
|
||||
import { getAusweisartFromId } from "#components/Ausweis/types";
|
||||
import { getAufnahme, getBedarfsausweisWohnen, getBilder, getObjekt, getUnterlagen, getVerbrauchsausweisGewerbe, getVerbrauchsausweisWohnen } from "#lib/server/db";
|
||||
|
||||
// Man sollte nur auf diese Seite kommen, wenn ein Ausweis bereits vorliegt und in der Datenbank abgespeichert wurde.
|
||||
|
||||
@@ -11,26 +13,53 @@ const user = await getCurrentUser(Astro) || {}
|
||||
|
||||
// POST Body
|
||||
const params = new URLSearchParams(await Astro.request.text());
|
||||
|
||||
if (!params.has("ausweis") || !params.has("aufnahme") || !params.has("objekt") || !params.has("bilder") || !params.has("ausweisart")) {
|
||||
return Astro.redirect("/404")
|
||||
}
|
||||
const searchParams = Astro.url.searchParams;
|
||||
|
||||
let ausweis, aufnahme, objekt, ausweisart, bilder, unterlagen, partner_code;
|
||||
try {
|
||||
ausweis = JSON.parse(params.get("ausweis") || "")
|
||||
aufnahme = JSON.parse(params.get("aufnahme") || "")
|
||||
objekt = JSON.parse(params.get("objekt") || "")
|
||||
ausweisart = JSON.parse(params.get("ausweisart") || "") as Enums.Ausweisart;
|
||||
bilder = JSON.parse(params.get("bilder") || "");
|
||||
unterlagen = JSON.parse(params.get("unterlagen") || "[]")
|
||||
partner_code = params.get("partner_code") || ""
|
||||
|
||||
if (!ausweisart || !Object.keys(Enums.Ausweisart).includes(ausweisart)) {
|
||||
throw new Error()
|
||||
|
||||
if (!params.has("ausweis") || !params.has("aufnahme") || !params.has("objekt") || !params.has("bilder") || !params.has("ausweisart")) {
|
||||
// Rechnung und Ausweis als GET parameter
|
||||
if (searchParams.has("a") && searchParams.has("r")) {
|
||||
const id = searchParams.get("id") as string
|
||||
const ausweisart = getAusweisartFromId(id)
|
||||
|
||||
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||
ausweis = await getVerbrauchsausweisWohnen(id)
|
||||
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||
ausweis = await getVerbrauchsausweisGewerbe(id)
|
||||
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
|
||||
ausweis = await getBedarfsausweisWohnen(id)
|
||||
}
|
||||
|
||||
if (!ausweis || ausweis.benutzer_id !== user.id) {
|
||||
// Ausweis gehört nicht diesem Benutzer oder existiert nicht
|
||||
return Astro.redirect("/404")
|
||||
}
|
||||
|
||||
aufnahme = await getAufnahme(ausweis.aufnahme_id)
|
||||
objekt = await getObjekt(aufnahme?.objekt_id)
|
||||
bilder = await getBilder(ausweis.aufnahme_id)
|
||||
unterlagen = await getUnterlagen(ausweis.aufnahme_id)
|
||||
} else {
|
||||
// Nichts ist vorhanden
|
||||
return Astro.redirect("/404")
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
ausweis = JSON.parse(params.get("ausweis") || "")
|
||||
aufnahme = JSON.parse(params.get("aufnahme") || "")
|
||||
objekt = JSON.parse(params.get("objekt") || "")
|
||||
ausweisart = JSON.parse(params.get("ausweisart") || "") as Enums.Ausweisart;
|
||||
bilder = JSON.parse(params.get("bilder") || "");
|
||||
unterlagen = JSON.parse(params.get("unterlagen") || "[]")
|
||||
partner_code = params.get("partner_code") || ""
|
||||
|
||||
if (!ausweisart || !Object.keys(Enums.Ausweisart).includes(ausweisart)) {
|
||||
throw new Error()
|
||||
}
|
||||
} catch(e){
|
||||
return Astro.redirect("/404")
|
||||
}
|
||||
} catch(e){
|
||||
return Astro.redirect("/404")
|
||||
}
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user