86 lines
2.6 KiB
Plaintext
86 lines
2.6 KiB
Plaintext
---
|
|
import AusweisLayout from "#layouts/AusweisLayoutDaten_immowelt.astro";
|
|
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types";
|
|
import { createCaller } from "src/astro-typesafe-api-caller";
|
|
import { inferOutput } from "astro-typesafe-api/client";
|
|
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";
|
|
|
|
const uid = Astro.url.searchParams.get("uid");
|
|
const ausweistyp = Astro.url.searchParams.get("ausweistyp") || Enums.AusweisTyp.Standard;
|
|
|
|
let ausweis: VerbrauchsausweisGewerbeClient = {} as VerbrauchsausweisGewerbeClient;
|
|
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
|
|
let objekt: ObjektClient = {} as ObjektClient;
|
|
let bilder: UploadedGebaeudeBild[] = []
|
|
|
|
const valid = validateAccessTokenServer(Astro);
|
|
|
|
const caller = createCaller(Astro);
|
|
|
|
if (uid) {
|
|
if (!valid) {
|
|
return Astro.redirect(
|
|
`/auth/login?redirect=${Astro.url.toString()}`
|
|
);
|
|
}
|
|
|
|
try {
|
|
let { uid_aufnahme, uid_objekt, uid_benutzer, ...result } = await caller["verbrauchsausweis-gewerbe"]._uid.GET.fetch(null, {
|
|
headers: {
|
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
},
|
|
params: {
|
|
uid
|
|
}
|
|
});
|
|
|
|
ausweis = result
|
|
|
|
aufnahme = await caller.aufnahme._uid.GET.fetch(null, {
|
|
headers: {
|
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
},
|
|
params: {
|
|
uid: uid_aufnahme
|
|
}
|
|
})
|
|
|
|
objekt = await caller.objekt._uid.GET.fetch(null, {
|
|
headers: {
|
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
},
|
|
params: {
|
|
uid: uid_objekt
|
|
}
|
|
})
|
|
|
|
bilder = await caller.aufnahme._uid.bilder.GET.fetch(null, {
|
|
headers: {
|
|
authorization: `Bearer ${Astro.cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)?.value}`
|
|
},
|
|
params: {
|
|
uid: uid_aufnahme
|
|
}
|
|
})
|
|
|
|
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) {
|
|
return Astro.redirect(
|
|
"/energieausweis-erstellen/verbrauchsausweis-gewerbe"
|
|
);
|
|
}
|
|
}
|
|
---
|
|
|
|
<AusweisLayout title="Verbrauchsausweis Gewerbe erstellen | IBCornelsen" tabHover2="glow">
|
|
<VerbrauchsausweisGewerbeModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp}/>
|
|
</AusweisLayout> |