diff --git a/src/client/tickets/createTicket.ts b/src/client/tickets/createTicket.ts index a9b14b14..7f12f395 100644 --- a/src/client/tickets/createTicket.ts +++ b/src/client/tickets/createTicket.ts @@ -1,6 +1,6 @@ import { OmitKeys, TicketClient } from "#components/Ausweis/types.js"; import { api } from "astro-typesafe-api/client"; -export async function createTicket(info: OmitKeys) { +export async function createTicket(info: OmitKeys) { return await api.ticket.PUT.fetch(info) } \ No newline at end of file diff --git a/src/components/Ausweis/Ausweisart.svelte b/src/components/Ausweis/Ausweisart.svelte index 2715882c..b6eb8793 100644 --- a/src/components/Ausweis/Ausweisart.svelte +++ b/src/components/Ausweis/Ausweisart.svelte @@ -49,7 +49,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 required data-cy="ausstellgrund" > - + {#each ausstellgrund as name} {/each} @@ -73,7 +73,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 required bind:value={aufnahme.gebaeudetyp} > - + {#if ausweisart==Enums.Ausweisart.VerbrauchsausweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.BedarfsausweisWohnen} @@ -225,7 +225,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 required bind:value={aufnahme.saniert} > - + diff --git a/src/components/Ausweis/ButtonWeiterHilfe.svelte b/src/components/Ausweis/ButtonWeiterHilfe.svelte index a1339721..ee2ee4a1 100644 --- a/src/components/Ausweis/ButtonWeiterHilfe.svelte +++ b/src/components/Ausweis/ButtonWeiterHilfe.svelte @@ -5,7 +5,7 @@ import Overlay from "#components/Overlay.svelte"; import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte"; - import { AusweisTyp, BedarfsausweisGewerbe, Enums, GEGNachweisGewerbe, GEGNachweisWohnen, Unterlage } from "#lib/client/prisma.js"; + import { AusweisTyp, BedarfsausweisGewerbe, Enums, GEGNachweisGewerbe, GEGNachweisWohnen, Unterlage, VerbrauchsausweisWohnen } from "#lib/client/prisma.js"; import { openWindowWithPost } from "#lib/helpers/window.js"; import { PRICES } from "#lib/constants.js"; import { nachweisSpeichern } from "#client/lib/nachweisSpeichern.js"; @@ -19,6 +19,7 @@ export let ausweisart: Enums.Ausweisart export let form: HTMLFormElement; export let skala: HTMLDivElement; + export let blockLocalStorageSync: boolean = false; export let showWeiter: boolean = true; export let showHelpButton: boolean = true; @@ -95,10 +96,10 @@ let result: Awaited> | Awaited> | null = null; if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) { - result = await nachweisSpeichern({ ...ausweis, nachweistyp: ausweistyp }, objekt, aufnahme, bilder, unterlagen, ausweisart) + result = await nachweisSpeichern({ ...ausweis as GEGNachweisWohnen, nachweistyp: ausweistyp }, objekt, aufnahme, bilder, unterlagen, ausweisart) ausweis.id = result.nachweis_id; } else { - result = await ausweisSpeichern({ ...ausweis, ausweistyp }, objekt, aufnahme, bilder, ausweisart) + result = await ausweisSpeichern({ ...ausweis as VerbrauchsausweisWohnen, ausweistyp }, objekt, aufnahme, bilder, ausweisart) ausweis.id = result.ausweis_id; } @@ -108,7 +109,7 @@ "", `${location.pathname}?id=${ausweis.id}` ); - + blockLocalStorageSync = true; localStorage.clear() window.location.href = `/speichern-erfolgreich?id=${ausweis.id}` } diff --git a/src/components/Ausweis/GebaeudeDaten.svelte b/src/components/Ausweis/GebaeudeDaten.svelte index 16ce8603..2f1ff4fd 100644 --- a/src/components/Ausweis/GebaeudeDaten.svelte +++ b/src/components/Ausweis/GebaeudeDaten.svelte @@ -183,7 +183,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 bind:value={aufnahme.gebaeudeteil} required > - + @@ -214,7 +214,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 bind:value={aufnahme.dachgeschoss} required > - + @@ -243,7 +243,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 required bind:value={aufnahme.keller} > - + diff --git a/src/components/Ausweis/GebaeudeVolumen.svelte b/src/components/Ausweis/GebaeudeVolumen.svelte index ee6aae01..bb20ec79 100644 --- a/src/components/Ausweis/GebaeudeVolumen.svelte +++ b/src/components/Ausweis/GebaeudeVolumen.svelte @@ -1,454 +1,475 @@ -
+" +> +
+
+
+ rechteck +
+
+ l-form +
+
+ t-form +
+
+ u-form +
+
+
-
-
-
rechteck
-
l-form
-
t-form
-
u-form
-
-
- -
- -
+
+ > +
+

+ Berechnungshilfe - Eingabe der Grundfläche, Gechossanzahl + und -höhe +

+
+ Hier wählen Sie Ihren passenden Grundriss aus, und + tragen die entsprechenden Maße unten ein. Bitte + berücksichtigen Sie nur den Grundriss der zum beheizten + Gebäude gehört. Garagen oder Schuppen die an das Haus + herangebaut sind aber keine Verbindung zum Wohnhaus + haben bitte weglassen. +
+
-
-

Berechnungshilfe - Eingabe der Grundfläche, Gechossanzahl und -höhe

-
- Hier wählen Sie Ihren passenden Grundriss aus, und tragen die entsprechenden Maße unten ein. - Bitte berücksichtigen Sie nur den Grundriss der zum beheizten Gebäude gehört. - Garagen oder Schuppen die an das Haus herangebaut sind aber keine Verbindung zum Wohnhaus haben bitte weglassen. -
-
+
+ -
- + - +
+ +
+
-
- -
-
+
+ -
- + - +
+ +
+
-
- -
-
+
+ -
- + - +
+ +
+
-
- -
-
+
+ -
- + - +
+ +
+
-
- -
+
+ -
+ -
- +
+ +
+
- +
+ -
- -
+ -
+
+ +
+
+
- -
- - - - -
- -
- -
- -
- -
+ > +
+ -
- + - +
+ Bitte geben Sie hier die Anzahl der Vollgeschosse an. + Keller und Dachgeschoss mit Schrägen zählen nicht dazu. +
+
-
- Bitte geben Sie hier die Anzahl der Vollgeschosse - an. Keller und Dachgeschoss mit Schrägen zählen - nicht dazu. -
-
+
+ -
- + - +
+ Bitte geben Sie hier die Geschosshöhe (lichte Raumhöhe + + Deckenstärke) des Gebäudes ein. Bei unterschiedlichen + Geschosshöhen bilden Sie einen Mittelwert. +
+
-
- Bitte geben Sie hier die Geschosshöhe (lichte - Raumhöhe + Deckenstärke) des Gebäudes ein. Bei - unterschiedlichen Geschosshöhen bilden Sie einen - Mittelwert. -
-
+
+ -
- + - +
+ Wenn Ihr Gebäude Dachgauben besitzt geben Sie hier die + Anzahl ein. +
+
-
- Wenn Ihr Gebäude Dachgauben besitzt geben Sie hier - die Anzahl ein. -
-
+
+ -
- + - +
+ Bitte geben Sie hier die Gesamtbreite aller Gauben in m + ein. +
+
+
+
-
- Bitte geben Sie hier die Gesamtbreite aller Gauben - in m ein. -
- - -
-
- - - -
-
+
-
-

Außenflächen, U-Werte und Volumen

-
- Die wärmeübertragende Umfassungsflächen sind die Hüllflächen des beheizten Gebäudes die an die Außenluft bzw. an unbeheizte Vorbauten grenzen. - Wenn Ihnen die Außenwand-,Dach-,Decken- und Bodenflächen vorliegen können Sie die Eingabe direkt vornehmen. - Hier können Sie auch das von den Umfassungsflächen eingeschlossene Volumen des Gebäudes eingeben. - Die ermittelten Werte der Berechnungshilfe können hier präzisiert werden. + > +
+

+ Außenflächen, U-Werte und Volumen +

+
+ Die wärmeübertragende Umfassungsflächen sind die + Hüllflächen des beheizten Gebäudes die an die Außenluft + bzw. an unbeheizte Vorbauten grenzen. Wenn Ihnen die + Außenwand-,Dach-,Decken- und Bodenflächen vorliegen + können Sie die Eingabe direkt vornehmen. Hier können Sie + auch das von den Umfassungsflächen eingeschlossene + Volumen des Gebäudes eingeben. Die ermittelten Werte der + Berechnungshilfe können hier präzisiert werden. +
+
+ +
+ + +
+
+ + +
+
+ +
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + +
+
+ + +
+ +
+ + +
+
+ +
+ +
+
+
+
-
- -
- - -
-
- - - -
- -
- -
- -
-
- -
- - - - -
- -
-
- -
- - - - -
- -
-
- -
- - - - -
- -
-
- -
- - - - -
- -
-
- -
- - - - -
- -
-
- -
- - - - -
- -
-
- -
- - - - -
- -
-
- -
- - - - -
- -
-
- -
- - - - -
- -
-
- -
- - - -
- -
- - - - -
- -
- - - -
- -
- -
- -
-
- -
- - - - - \ No newline at end of file +--> diff --git a/src/components/Ausweis/LueftungundLeerstand.svelte b/src/components/Ausweis/LueftungundLeerstand.svelte index 853a87e0..420c5851 100644 --- a/src/components/Ausweis/LueftungundLeerstand.svelte +++ b/src/components/Ausweis/LueftungundLeerstand.svelte @@ -50,7 +50,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 required bind:value={aufnahme.lueftung} > - + + diff --git a/src/components/Ausweis/SanierungszustandFensterTueren.svelte b/src/components/Ausweis/SanierungszustandFensterTueren.svelte index 13ee27db..203eef64 100644 --- a/src/components/Ausweis/SanierungszustandFensterTueren.svelte +++ b/src/components/Ausweis/SanierungszustandFensterTueren.svelte @@ -1,7 +1,5 @@ diff --git a/src/components/Ausweis/SanierungszustandHeizungsanlage.svelte b/src/components/Ausweis/SanierungszustandHeizungsanlage.svelte index f1d21016..589470a7 100644 --- a/src/components/Ausweis/SanierungszustandHeizungsanlage.svelte +++ b/src/components/Ausweis/SanierungszustandHeizungsanlage.svelte @@ -1,5 +1,5 @@ -
+
{#if objekt.aufnahmen.length > 0} {@const bild = objekt.aufnahmen[0].bilder.find(bild => bild.kategorie === Enums.BilderKategorie.Gebaeude)}
@@ -21,18 +21,14 @@ {/if}
-
-
- Energieausweis ausgestellt -
-
Energieausweis
-
-
-
- Energieausweis ausgestellt -
-
Energieausweis
-
+ {#if objekt.aufnahmen.at(-1)?.verbrauchsausweise_wohnen.length} + +
+ Energieausweis ausgestellt +
+
Energieausweis
+
+ {/if}
{#each objekt.aufnahmen as aufnahme} @@ -42,12 +38,6 @@
-
-
- Detailübersicht
Stand vom {moment(aufnahme.erstellungsdatum).format("DD.MM.YYYY")}
- -
-
{/each}
diff --git a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte index c5fbac65..059ef7f1 100644 --- a/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte +++ b/src/modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte @@ -28,17 +28,16 @@ AufnahmeClient } from "#components/Ausweis/types.js"; - import ButtonSpaeterHilfe from "#components/Ausweis/ButtonSpaeterHilfe.svelte"; - + export let ausweis: BedarfsausweisWohnenClient; export let objekt: ObjektClient export let aufnahme: AufnahmeClient export let user: BenutzerClient = {} as BenutzerClient; export let ausweistyp: Enums.AusweisTyp export let bilder: BildClient[] = [] - export let uid: string; + export let id: string; - if (!uid && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) { + if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && !id && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) { const localStorageAusweis = localStorage.getItem("bedarfsausweis-wohnen.ausweis"); if (localStorageAusweis) { ausweis = JSON.parse(localStorageAusweis) @@ -61,68 +60,21 @@ } $: { - localStorage.setItem("bedarfsausweis-wohnen.ausweis", JSON.stringify(ausweis)) - localStorage.setItem("bedarfsausweis-wohnen.aufnahme", JSON.stringify(aufnahme)) - localStorage.setItem("bedarfsausweis-wohnen.objekt", JSON.stringify(objekt)) - localStorage.setItem("bedarfsausweis-wohnen.bilder", JSON.stringify(bilder)) - localStorage.setItem("bedarfsausweis-wohnen.updated_at", moment().toString()) + if (!blockLocalStorageSync) { + localStorage.setItem("bedarfsausweis-wohnen.ausweis", JSON.stringify(ausweis)) + localStorage.setItem("bedarfsausweis-wohnen.aufnahme", JSON.stringify(aufnahme)) + localStorage.setItem("bedarfsausweis-wohnen.objekt", JSON.stringify(objekt)) + localStorage.setItem("bedarfsausweis-wohnen.bilder", JSON.stringify(bilder)) + localStorage.setItem("bedarfsausweis-wohnen.updated_at", moment().toString()) + } } - let daemmungsBreiten = [0, 0.02, 0.05, 0.08, 0.12, 0.16, 0.2, 0.3, 0.4]; - - let fensterArten = { - Einfachverglasung: 5, - "Holzfenster Doppelverglasung": 2.7, - "Kunststofffenster Doppelverglasung": 3, - "Alu- oder Stahlfenster Doppelverglasung": 4.3, - "Fenster Doppelverglasung (ab 1995)": 1.8, - "Fenster Doppelverglasung (U-Wert 1,1)": 1.1, - "Dreifach-Wärmeschutzverglasung(U-Wert 0,9)": 0.9, - "Dreifach-Wärmeschutzverglasung(U-Wert 0,85)": 0.85, - "Passivhausfenster(U-Wert 0,7)": 0.7, - "Passivhausfenster(U-Wert 0,6)": 0.6, - "Fenster mit U-Wert 2,3": 2.3, - "Fenster mit U-Wert 1,6": 1.6, - "Fenster mit U-Wert 1,7": 1.7, - "Fenster mit U-Wert 1,3": 1.3, - "Fenster mit U-Wert 1": 1, - }; - - async function spaeterWeitermachen() { - // const result = await verbrauchsausweisWohnenSpeichern( - // ausweis, - // gebaeude, - // aufnahme, - // images, - // user - // ); - // if (result !== null) { - // // Falls der Nutzer zurück navigiert, sollte er wieder auf seinen Vorgang kommen. - // // Sonst müsste er alles neu eingeben... - // ausweis.uid = result.uid; - // gebaeude.uid = result.gebaeude_uid; - // aufnahme.uid = result.gebaeude_aufnahme_uid; - // window.history.pushState( - // {}, - // "", - // `${location.pathname}?uid=${result.uid}` - // ); - // speichernOverlayHidden = false; - // } - } - - - const arrayRange = (start: number, stop: number, step: number) => - Array.from( - { length: (stop - start) / step + 1 }, - (value, index) => start + index * step - ); - const ausweisart = Enums.Ausweisart.BedarfsausweisWohnen const anliegen = "Energieausweis erstellen"; let form: HTMLFormElement; let skala: HTMLDivElement; + let blockLocalStorageSync: boolean = false; @@ -143,7 +95,19 @@
- + + @@ -240,16 +204,19 @@ title="Angabe zu Lüftung und Kühlung"
- + + diff --git a/src/modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte b/src/modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte index 513a5f0d..8f473270 100644 --- a/src/modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte +++ b/src/modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte @@ -42,16 +42,17 @@ } from "#components/Notifications/index.js"; export let ausweis: VerbrauchsausweisGewerbeClient; - export let user: BenutzerClient; + export let user: BenutzerClient | null; export let objekt: ObjektClient; export let ausweistyp: Enums.AusweisTyp; export let aufnahme: AufnahmeClient; export let bilder: BildClient[]; + export let id: string | null; const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe const anliegen = "Energieausweis erstellen"; - if (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-gewerbe.updated_at") || new Date()).isAfter(ausweis.updated_at)) { + if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && !id && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-gewerbe.updated_at") || new Date()).isAfter(ausweis.updated_at))) { const localStorageAusweis = localStorage.getItem("verbrauchsausweis-gewerbe.ausweis"); if (localStorageAusweis) { ausweis = JSON.parse(localStorageAusweis) @@ -74,13 +75,16 @@ } $: { - localStorage.setItem("verbrauchsausweis-gewerbe.ausweis", JSON.stringify(ausweis)) - localStorage.setItem("verbrauchsausweis-gewerbe.aufnahme", JSON.stringify(aufnahme)) - localStorage.setItem("verbrauchsausweis-gewerbe.objekt", JSON.stringify(objekt)) - localStorage.setItem("verbrauchsausweis-gewerbe.bilder", JSON.stringify(bilder)) - localStorage.setItem("verbrauchsausweis-gewerbe.updated_at", moment().toString()) + if (!blockLocalStorageSync) { + localStorage.setItem("verbrauchsausweis-gewerbe.ausweis", JSON.stringify(ausweis)) + localStorage.setItem("verbrauchsausweis-gewerbe.aufnahme", JSON.stringify(aufnahme)) + localStorage.setItem("verbrauchsausweis-gewerbe.objekt", JSON.stringify(objekt)) + localStorage.setItem("verbrauchsausweis-gewerbe.bilder", JSON.stringify(bilder)) + localStorage.setItem("verbrauchsausweis-gewerbe.updated_at", moment().toString()) + } } + let blockLocalStorageSync: boolean = false; let form: HTMLFormElement; let skala: HTMLDivElement; @@ -114,6 +118,7 @@ bind:user bind:objekt bind:aufnahme + bind:blockLocalStorageSync ausweisart={Enums.Ausweisart.VerbrauchsausweisGewerbe} showWeiter={false} {form} @@ -229,6 +234,7 @@ bind:user bind:objekt bind:aufnahme + bind:blockLocalStorageSync ausweisart={Enums.Ausweisart.VerbrauchsausweisGewerbe} showWeiter={true} {form} diff --git a/src/pages/api/ticket/index.ts b/src/pages/api/ticket/index.ts index d2b46e8b..d63fb87c 100644 --- a/src/pages/api/ticket/index.ts +++ b/src/pages/api/ticket/index.ts @@ -3,6 +3,8 @@ import { prisma } from "#lib/server/prisma.js"; import { defineApiRoute } from "astro-typesafe-api/server"; import { UUidWithPrefix } from "#components/Ausweis/types.js"; import { TicketsSchema } from "src/generated/zod/tickets.js"; +import { generatePrefixedId } from "#lib/db.js"; +import { VALID_UUID_PREFIXES } from "#lib/constants.js"; export const PUT = defineApiRoute({ meta: { @@ -20,23 +22,22 @@ export const PUT = defineApiRoute({ id: true, prioritaet: true, status: true, - uid: true, updated_at: true, }), output: z.object({ - uid: UUidWithPrefix, + id: UUidWithPrefix, }), async fetch(input, ctx) { + const id = generatePrefixedId(6, VALID_UUID_PREFIXES.Ticket) + const ticket = await prisma.tickets.create({ data: { + id, beschreibung: input.beschreibung, email: input.email, titel: input.titel, metadata: input.metadata, - }, - select: { - uid: true, - }, + } }); // Das sind die Label IDs von Trello @@ -71,7 +72,7 @@ export const PUT = defineApiRoute({ return { - uid: ticket.uid, + id: ticket.id, }; }, }); diff --git a/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro b/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro index c5f82af1..c20f5b8c 100644 --- a/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro +++ b/src/pages/energieausweis-erstellen/verbrauchsausweis-gewerbe/index.astro @@ -1,112 +1,85 @@ --- import AusweisLayout from "#layouts/AusweisLayoutDaten.astro"; import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types"; -import { createCaller } from "src/astro-typesafe-api-caller"; -import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants"; -import { validateAccessTokenServer } from "#server/lib/validateAccessToken"; import VerbrauchsausweisGewerbeModule from "#modules/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbeModule.svelte"; -import { Enums } from "#lib/server/prisma"; +import { Aufnahme, Enums, Objekt, VerbrauchsausweisGewerbe } from "#lib/server/prisma"; +import { getAufnahme, getObjekt, getBilder, getVerbrauchsausweisGewerbe } from "#lib/server/db"; +import { getCurrentUser } from "#lib/server/user"; -const id = Astro.url.searchParams.get("uid"); +const id = Astro.url.searchParams.get("id"); const aufnahme_id = Astro.url.searchParams.get("aufnahme") -const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard; +let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard; let ausweis: VerbrauchsausweisGewerbeClient = {} as VerbrauchsausweisGewerbeClient; let aufnahme: AufnahmeClient = {} as AufnahmeClient; let objekt: ObjektClient = {} as ObjektClient; let bilder: BildClient[] = [] -const valid = validateAccessTokenServer(Astro); - -const caller = createCaller(Astro); +const user = await getCurrentUser(Astro) if (id) { - if (!valid) { + if (!user) { return Astro.redirect( `/auth/login?redirect=${Astro.url.toString()}` ); } - try { - let { aufnahme_id, objekt_id, benutzer_id, ...result } = await caller["verbrauchsausweis-gewerbe"]._id.GET.fetch(null, { - headers: { - authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}` - }, - params: { - id - } - }); + ausweis = await getVerbrauchsausweisGewerbe(id) as VerbrauchsausweisGewerbe - ausweis = result - - aufnahme = await caller.aufnahme._id.GET.fetch(null, { - headers: { - authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}` - }, - params: { - id: aufnahme_id - } - }) - - objekt = await caller.objekt._id.GET.fetch(null, { - headers: { - authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}` - }, - params: { - id: objekt_id - } - }) - - bilder = await caller.aufnahme._id.bilder.GET.fetch(null, { - headers: { - authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}` - }, - params: { - id: aufnahme_id - } - }) - - if (!ausweis) { - // Der Ausweis scheint nicht zu existieren. - // Wir leiten auf die generische Ausweisseite ohne UID weiter. - return Astro.redirect( - "/energieausweis-erstellen/verbrauchsausweis-gewerbe" - ); - } - } catch(e) { + if (!ausweis || ausweis.benutzer_id !== user.id) { + // Der Ausweis scheint nicht zu existieren. + // Wir leiten auf die generische Ausweisseite ohne ID weiter. return Astro.redirect( - "/energieausweis-erstellen/verbrauchsausweis-gewerbe" + "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude" ); } + + aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme + + if (!aufnahme) { + // Die Aufnahme existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren. + return Astro.redirect( + "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude" + ); + } + + objekt = await getObjekt(aufnahme.objekt_id) as Objekt + + if (!objekt) { + // Das Objekt existiert nicht, das sollte eigentlich nicht passieren aber so können wir nicht fortfahren. + return Astro.redirect( + "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude" + ); + } + + bilder = await getBilder(aufnahme.id); } else if (aufnahme_id) { - if (!valid) { + if (!user) { return Astro.redirect( `/auth/login?redirect=${Astro.url.toString()}` ); } - let { objekt_id, ...result} = await caller.aufnahme._id.GET.fetch(null, { - headers: { - authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}` - }, - params: { - id: aufnahme_id - } - }) + aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme - aufnahme = result; + if (!aufnahme) { + // Die Aufnahme existiert wohl nicht. + return Astro.redirect( + "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude" + ); + } - objekt = await caller.objekt._id.GET.fetch(null, { - headers: { - authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}` - }, - params: { - id: objekt_id - } - }) + objekt = await getObjekt(aufnahme.objekt_id) as Objekt + + if (!objekt) { + // Das Objekt existiert nicht. + return Astro.redirect( + "/energieausweis-erstellen/verbrauchsausweis-wohngebaeude" + ); + } } --- - + \ No newline at end of file