Bugfixes
This commit is contained in:
4
bun.lock
4
bun.lock
@@ -86,7 +86,7 @@
|
||||
"prisma-dbml-generator": "^0.12.0",
|
||||
"prisma-generator-fake-data": "^0.14.3",
|
||||
"tsx": "^4.19.3",
|
||||
"typescript": "^4.9.5",
|
||||
"typescript": "^5",
|
||||
"zod-prisma": "^0.5.4",
|
||||
},
|
||||
},
|
||||
@@ -2539,7 +2539,7 @@
|
||||
|
||||
"type-is": ["type-is@1.6.18", "", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="],
|
||||
|
||||
"typescript": ["typescript@4.9.5", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="],
|
||||
"typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
|
||||
|
||||
"ufo": ["ufo@1.5.4", "", {}, "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ=="],
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
"prisma-dbml-generator": "^0.12.0",
|
||||
"prisma-generator-fake-data": "^0.14.3",
|
||||
"tsx": "^4.19.3",
|
||||
"typescript": "^4.9.5",
|
||||
"typescript": "^5.8.3",
|
||||
"zod-prisma": "^0.5.4"
|
||||
},
|
||||
"overrides": {
|
||||
|
||||
@@ -5,10 +5,6 @@ export const createCaller = createCallerFactory({
|
||||
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
||||
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
||||
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
||||
"ausweise": await import("../src/pages/api/ausweise/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"),
|
||||
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
|
||||
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
|
||||
"admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"),
|
||||
@@ -16,11 +12,15 @@ export const createCaller = createCallerFactory({
|
||||
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
|
||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.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"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||
"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"),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||
import { Aufnahme, Objekt } from "#lib/server/prisma.js";
|
||||
import { Aufnahme, Objekt } from "#lib/client/prisma.js";
|
||||
import { api } from "astro-typesafe-api/client";
|
||||
import Cookies from "js-cookie";
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ xl:grid-cols-4 xl:gap-x-8 xl:gap-y-8
|
||||
>
|
||||
<option>Bitte auswählen</option>
|
||||
{#each hotWaterProductionTypes as type, i}
|
||||
<option value={i}>{type}</option>
|
||||
<option value={type}>{type}</option>
|
||||
{/each}
|
||||
</select>
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
export let ausweistyp: AusweisTyp = Enums.AusweisTyp.Standard;
|
||||
|
||||
async function ausweisAbschicken() {
|
||||
// Wir müssen überprüfen, dass mindestens ein Baujahr eingegeben wurde.
|
||||
if (aufnahme.baujahr_gebaeude.length === 0) {
|
||||
(form.querySelector("input[name='baujahr_gebaeude']") as HTMLInputElement).setCustomValidity("Die Eingabe von mindestens einem Baujahr ist verpflichtend.")
|
||||
} else {
|
||||
@@ -39,12 +40,12 @@
|
||||
(form.querySelector("input[name='baujahr_heizung']") as HTMLInputElement).setCustomValidity("")
|
||||
}
|
||||
|
||||
new FormData(form).forEach((value, key) => {
|
||||
if (key === "baujahr_heizung" || key === "baujahr_gebaeude" || key === "baujahr_klima") {
|
||||
return
|
||||
}
|
||||
// Wir holen uns die Daten aus dem Formular
|
||||
const data = new FormData(form);
|
||||
// Und gleichen diese mit allen Feldern ab die "required" sind, damit stellen wir sicher, dass alles richtig ausgefüllt wurde.
|
||||
(form.querySelectorAll("select[name][required],input[name][required]") as NodeListOf<HTMLInputElement | HTMLSelectElement>).forEach((element) => {
|
||||
const value = data.get(element.getAttribute("name") as string)
|
||||
|
||||
const element = (form.querySelector(`[name='${key}']`) as HTMLSelectElement);
|
||||
if (!value && element.required) {
|
||||
element.setCustomValidity("Eine Auswahl ist verpflichtend.")
|
||||
} else {
|
||||
@@ -52,6 +53,7 @@
|
||||
}
|
||||
})
|
||||
|
||||
// Falls das Formular nicht valid ist markieren wir die fehlenden Felder.
|
||||
if (!form.checkValidity()) {
|
||||
// Entferne die Klasse "2xl:mt-[370px]" falls vorhanden
|
||||
form.classList.remove("2xl:mt-[370px]");
|
||||
@@ -98,8 +100,8 @@
|
||||
|
||||
let loginAction: () => any = ausweisAbschicken;
|
||||
|
||||
async function spaeterWeitermachen() {
|
||||
loginAction = spaeterWeitermachen;
|
||||
async function speichern() {
|
||||
loginAction = speichern;
|
||||
if (!(await validateAccessTokenClient())) {
|
||||
loginOverlayHidden = false;
|
||||
return
|
||||
@@ -161,7 +163,7 @@ sm:grid-cols-[1fr_min-content_min-content_min-content] sm:justify-self-end">
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<button class="button" type="button" on:click={spaeterWeitermachen}
|
||||
<button class="button" type="button" on:click={speichern}
|
||||
>Später Weitermachen
|
||||
</button>
|
||||
|
||||
|
||||
@@ -154,21 +154,21 @@ xl:grid-cols-4 xl:gap-x-8 xl:gap-y-8
|
||||
required
|
||||
>
|
||||
<option>bitte auswählen</option>
|
||||
<option value="1.8">Standard (U-Wert 1,8)</option>
|
||||
<option value="5">Ganz alte Tür (U-Wert 5,0)</option>
|
||||
<option value="2.7">U-Wert 2,7</option>
|
||||
<option value="3">U-Wert 3,0</option>
|
||||
<option value="4.3">U-Wert 4,3</option>
|
||||
<option value="1.1">U-Wert 1,1</option>
|
||||
<option value="0.9">U-Wert 0,9</option>
|
||||
<option value="0.85">U-Wert 0,85</option>
|
||||
<option value="0.7">Passivhaustür (U-Wert 0,7)</option>
|
||||
<option value="0.6">Passivhaustür (U-Wert 0,6)</option>
|
||||
<option value="2.3">U-Wert 2,3</option>
|
||||
<option value="1.6">U-Wert 1,6</option>
|
||||
<option value="1.7">U-Wert 1,7</option>
|
||||
<option value="1.3">U-Wert 1,3</option>
|
||||
<option value="1">U-Wert 1,0</option>
|
||||
<option value={1.8}>Standard (U-Wert 1,8)</option>
|
||||
<option value={5}>Ganz alte Tür (U-Wert 5,0)</option>
|
||||
<option value={2.7}>U-Wert 2,7</option>
|
||||
<option value={3}>U-Wert 3,0</option>
|
||||
<option value={4.3}>U-Wert 4,3</option>
|
||||
<option value={1.1}>U-Wert 1,1</option>
|
||||
<option value={0.9}>U-Wert 0,9</option>
|
||||
<option value={0.85}>U-Wert 0,85</option>
|
||||
<option value={0.7}>Passivhaustür (U-Wert 0,7)</option>
|
||||
<option value={0.6}>Passivhaustür (U-Wert 0,6)</option>
|
||||
<option value={2.3}>U-Wert 2,3</option>
|
||||
<option value={1.6}>U-Wert 1,6</option>
|
||||
<option value={1.7}>U-Wert 1,7</option>
|
||||
<option value={1.3}>U-Wert 1,3</option>
|
||||
<option value={1}>U-Wert 1,0</option>
|
||||
</select>
|
||||
|
||||
<div class="help-label">
|
||||
|
||||
@@ -318,6 +318,11 @@
|
||||
class="button text-sm"
|
||||
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
|
||||
>Bearbeiten</a>
|
||||
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
|
||||
<a
|
||||
class="button text-sm"
|
||||
href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?id={ausweis.id}"
|
||||
>Bearbeiten</a>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<script lang="ts">
|
||||
import PerformanceScore from "#components/Ausweis/PerformanceScore.svelte";
|
||||
import Progressbar from "#components/Ausweis/Progressbar.svelte";
|
||||
//import Hilfe from "#components/Ausweis/Hilfe.svelte";
|
||||
|
||||
import Bereich from "#components/labels/Bereich.svelte";
|
||||
|
||||
@@ -19,25 +18,28 @@
|
||||
|
||||
|
||||
import moment from "moment";
|
||||
import { Enums } from "#lib/client/prisma.js";
|
||||
import { Benutzer, Enums } from "#lib/client/prisma.js";
|
||||
import {
|
||||
BedarfsausweisWohnenClient,
|
||||
BenutzerClient,
|
||||
ObjektClient,
|
||||
BildClient,
|
||||
AufnahmeClient
|
||||
} from "#components/Ausweis/types.js";
|
||||
|
||||
|
||||
|
||||
export let ausweis: BedarfsausweisWohnenClient;
|
||||
export let objekt: ObjektClient
|
||||
export let aufnahme: AufnahmeClient
|
||||
export let user: BenutzerClient = {} as BenutzerClient;
|
||||
export let user: Benutzer | null;
|
||||
export let ausweistyp: Enums.AusweisTyp
|
||||
export let bilder: BildClient[] = []
|
||||
export let id: string;
|
||||
export let id: string | null;
|
||||
|
||||
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))) {
|
||||
// Wir holen die daten aus dem LocalStorage falls
|
||||
// Der Nutzer kein Admin ist
|
||||
// Der Ausweis noch nicht gespeichert wurde
|
||||
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && (!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)
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
[Enums.Ausweisart.VerbrauchsausweisGewerbe]:
|
||||
new URL("/energieausweis-erstellen/verbrauchsausweis-gewerbe", window.location.origin),
|
||||
[Enums.Ausweisart.BedarfsausweisWohnen]:
|
||||
new URL("/energieausweis-erstellen/bedarfsausweis-wohnen", window.location.origin),
|
||||
new URL("/energieausweis-erstellen/bedarfsausweis-wohngebaeude", window.location.origin),
|
||||
[Enums.Ausweisart.GEGNachweisWohnen]:
|
||||
new URL("/angebot-anfragen/geg-nachweis-wohnen-anfragen", window.location.origin),
|
||||
[Enums.Ausweisart.GEGNachweisGewerbe]:
|
||||
|
||||
@@ -52,7 +52,11 @@
|
||||
const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe
|
||||
const anliegen = "Energieausweis erstellen";
|
||||
|
||||
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))) {
|
||||
// Wir holen die daten aus dem LocalStorage falls
|
||||
// Der Nutzer kein Admin ist
|
||||
// Der Ausweis noch nicht gespeichert wurde
|
||||
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && (!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)
|
||||
|
||||
@@ -57,9 +57,11 @@
|
||||
export let ausweistyp: Enums.AusweisTyp;
|
||||
export let id: string | null;
|
||||
|
||||
// Falls die Daten im localStorage neuer sind als der Ausweis den wir von der Datenbank bekommen haben, benutzen wir lieber diese.
|
||||
// Wir schauen auch ob der Benutzer nicht vielleicht ein Admin ist, dann sollten wir nichts aus dem localStorage holen.
|
||||
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && !id && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
||||
// Wir holen die daten aus dem LocalStorage falls
|
||||
// Der Nutzer kein Admin ist
|
||||
// Der Ausweis noch nicht gespeichert wurde
|
||||
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||
if (((user && user.rolle !== Enums.BenutzerRolle.ADMIN) || !user) && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
||||
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-wohnen.ausweis");
|
||||
if (localStorageAusweis) {
|
||||
ausweis = JSON.parse(localStorageAusweis)
|
||||
|
||||
@@ -29,9 +29,11 @@
|
||||
export let ausweistyp: Enums.AusweisTyp;
|
||||
export let id: string | null;
|
||||
|
||||
// Falls die Daten im localStorage neuer sind als der Ausweis den wir von der Datenbank bekommen haben, benutzen wir lieber diese.
|
||||
// Wir schauen auch ob der Benutzer nicht vielleicht ein Admin ist, dann sollten wir nichts aus dem localStorage holen.
|
||||
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && !id && (!nachweis.updated_at || moment(localStorage.getItem("geg-nachweis-wohnen.updated_at") || new Date()).isAfter(nachweis.updated_at))) {
|
||||
// Wir holen die daten aus dem LocalStorage falls
|
||||
// Der Nutzer kein Admin ist
|
||||
// Der Ausweis noch nicht gespeichert wurde
|
||||
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && (!nachweis.updated_at || moment(localStorage.getItem("geg-nachweis-wohnen.updated_at") || new Date()).isAfter(nachweis.updated_at))) {
|
||||
const localStorageAusweis = localStorage.getItem("geg-nachweis-wohnen.ausweis");
|
||||
if (localStorageAusweis) {
|
||||
nachweis = JSON.parse(localStorageAusweis)
|
||||
|
||||
@@ -28,7 +28,11 @@
|
||||
export let nachweistyp: Enums.AusweisTyp = Enums.AusweisTyp.Standard;
|
||||
export let id: string | null;
|
||||
|
||||
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && !id && (!nachweis.updated_at || moment(localStorage.getItem("geg-nachweis-wohnen.updated_at") || new Date()).isAfter(nachweis.updated_at))) {
|
||||
// Wir holen die daten aus dem LocalStorage falls
|
||||
// Der Nutzer kein Admin ist
|
||||
// Der Ausweis noch nicht gespeichert wurde
|
||||
// oder der Ausweis bereits gespeichert wurde aber die Daten im localStorage neuer sind als die Daten aus der Datenbank.
|
||||
if ((user && user.rolle !== Enums.BenutzerRolle.ADMIN) && (!nachweis.updated_at || moment(localStorage.getItem("geg-nachweis-wohnen.updated_at") || new Date()).isAfter(nachweis.updated_at))) {
|
||||
const localStorageNachweis = localStorage.getItem("geg-nachweis-wohnen.ausweis");
|
||||
if (localStorageNachweis) {
|
||||
nachweis = JSON.parse(localStorageNachweis)
|
||||
|
||||
@@ -67,12 +67,12 @@ if (id) {
|
||||
// Der Ausweis scheint nicht zu existieren.
|
||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
} catch(e) {
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||
export const GET = defineApiRoute({
|
||||
input: z.object({
|
||||
plz: z.string().min(4).max(5),
|
||||
startdatum: z.coerce.date(),
|
||||
startdatum: z.coerce.date().nullable(),
|
||||
enddatum: z.coerce.date(),
|
||||
genauigkeit: z.enum(["months", "years"]),
|
||||
}),
|
||||
|
||||
@@ -16,7 +16,7 @@ export const PATCH = defineApiRoute({
|
||||
updated_at: true,
|
||||
created_at: true
|
||||
}).merge(z.object({
|
||||
startdatum: z.coerce.date()
|
||||
startdatum: z.coerce.date().nullable(),
|
||||
})),
|
||||
output: z.void(),
|
||||
headers: {
|
||||
|
||||
@@ -23,7 +23,7 @@ export const PUT = defineApiRoute({
|
||||
updated_at: true,
|
||||
created_at: true
|
||||
}).merge(z.object({
|
||||
startdatum: z.coerce.date()
|
||||
startdatum: z.coerce.date().nullable()
|
||||
})),
|
||||
aufnahme_id: UUidWithPrefix
|
||||
}),
|
||||
|
||||
@@ -17,7 +17,7 @@ export const PATCH = defineApiRoute({
|
||||
created_at: true,
|
||||
updated_at: true
|
||||
}).merge(z.object({
|
||||
startdatum: z.coerce.date()
|
||||
startdatum: z.coerce.date().nullable()
|
||||
})),
|
||||
output: z.void(),
|
||||
headers: {
|
||||
|
||||
@@ -19,7 +19,7 @@ export const PUT = defineApiRoute({
|
||||
},
|
||||
input: z.object({
|
||||
ausweis: VerbrauchsausweisWohnenSchema.merge(z.object({
|
||||
startdatum: z.coerce.date()
|
||||
startdatum: z.coerce.date().nullable()
|
||||
})).omit({
|
||||
id: true,
|
||||
benutzer_id: true,
|
||||
|
||||
@@ -2,78 +2,79 @@
|
||||
|
||||
import AusweisLayout from "#layouts/AusweisLayoutDaten.astro";
|
||||
import BedarfsausweisWohnenModule from "#modules/BedarfsausweisWohnen/BedarfsausweisWohnenModule.svelte";
|
||||
import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisWohnenClient } 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 { Enums } from "#lib/server/prisma";
|
||||
import { Aufnahme, BedarfsausweisWohnen, Bild, Enums, Objekt } from "#lib/server/prisma";
|
||||
import { getAufnahme, getObjekt, getBilder, getBedarfsausweisWohnen } 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 ausweis: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
|
||||
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
||||
let objekt: ObjektClient = {} as ObjektClient;
|
||||
let bilder: BildClient[] = []
|
||||
let ausweistyp = Astro.url.searchParams.get("ausweistyp") as Enums.AusweisTyp || Enums.AusweisTyp.Standard;
|
||||
|
||||
const valid = validateAccessTokenServer(Astro);
|
||||
let ausweis: BedarfsausweisWohnen = {} as BedarfsausweisWohnen;
|
||||
let aufnahme: Aufnahme = {} as Aufnahme;
|
||||
let objekt: Objekt = {} as Objekt;
|
||||
let bilder: Bild[] = []
|
||||
|
||||
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 {
|
||||
ausweis = await caller["bedarfsausweis-wohnen"]._id.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
id
|
||||
}
|
||||
});
|
||||
ausweis = await getBedarfsausweisWohnen(id) as BedarfsausweisWohnen
|
||||
|
||||
aufnahme = await caller.aufnahme._id.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
id: ausweis.aufnahme_id
|
||||
}
|
||||
})
|
||||
|
||||
objekt = await caller.objekt._id.GET.fetch(null, {
|
||||
headers: {
|
||||
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
||||
},
|
||||
params: {
|
||||
id: ausweis.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: ausweis.aufnahme_id
|
||||
}
|
||||
})
|
||||
|
||||
if (!ausweis) {
|
||||
// Der Ausweis scheint nicht zu existieren.
|
||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
||||
);
|
||||
}
|
||||
} 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/bedarfsausweis-wohnen"
|
||||
"/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 (!user) {
|
||||
return Astro.redirect(
|
||||
`/auth/login?redirect=${Astro.url.toString()}`
|
||||
);
|
||||
}
|
||||
|
||||
aufnahme = await getAufnahme(ausweis.aufnahme_id) as Aufnahme
|
||||
|
||||
if (!aufnahme) {
|
||||
// Die Aufnahme existiert wohl nicht.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
|
||||
objekt = await getObjekt(aufnahme.objekt_id) as Objekt
|
||||
|
||||
if (!objekt) {
|
||||
// Das Objekt existiert nicht.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/verbrauchsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -81,5 +82,5 @@ if (id) {
|
||||
|
||||
---
|
||||
<AusweisLayout title="Bedarfsausweis erstellen | IBCornelsen">
|
||||
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {id}></BedarfsausweisWohnenModule>
|
||||
<BedarfsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} {id} {user}></BedarfsausweisWohnenModule>
|
||||
</AusweisLayout>
|
||||
@@ -64,12 +64,12 @@ if (uid) {
|
||||
// Der Ausweis scheint nicht zu existieren.
|
||||
// Wir leiten auf die generische Ausweisseite ohne UID weiter.
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
} catch(e) {
|
||||
return Astro.redirect(
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohnen"
|
||||
"/energieausweis-erstellen/bedarfsausweis-wohngebaeude"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user