Merge remote-tracking branch 'origin/main' into Jens

This commit is contained in:
Jens Cornelsen
2025-02-22 01:32:54 +01:00
201 changed files with 2150608 additions and 832 deletions

View File

@@ -2,7 +2,7 @@ import { getAusweisartFromUUID } from "#components/Ausweis/types.js";
import { adminMiddleware } from "#lib/middleware/authorization.js";
import { pdfDatenblattVerbrauchsausweisWohnen } from "#lib/pdf/pdfDatenblattVerbrauchsausweisWohnen.js";
import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen.js";
import { Enums, prisma } from "@ibcornelsen/database/server";
import { Enums, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "astro:content";
import { fileURLToPath } from "url";

View File

@@ -11,8 +11,8 @@ import {
Enums,
VerbrauchsausweisGewerbe,
VerbrauchsausweisWohnen,
} from "@ibcornelsen/database/client";
import { prisma } from "@ibcornelsen/database/server";
} from "#lib/server/prisma.js";
import { prisma } from "#lib/server/prisma.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import moment from "moment";
import { z } from "zod";

View File

@@ -2,7 +2,7 @@ import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { adminMiddleware } from "#lib/middleware/authorization.js";
import { mollieClient } from "#lib/mollie.js";
import { getPrismaAusweisAdapter } from "#lib/server/ausweis.js";
import { Prisma, prisma } from "@ibcornelsen/database/server";
import { Prisma, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,5 +1,5 @@
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { BildSchema, prisma } from "@ibcornelsen/database/server";
import { BildSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";
import isBase64 from "is-base64";

View File

@@ -1,7 +1,7 @@
import { AufnahmeClient, OptionalNullable, UUidWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
import { exclude } from "#lib/exclude.js";
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { AufnahmeSchema, prisma } from "@ibcornelsen/database/server";
import { AufnahmeSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,5 +1,5 @@
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { prisma, UnterlageSchema } from "@ibcornelsen/database/server";
import { prisma, UnterlageSchema } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";
import { UUidWithPrefix } from "#components/Ausweis/types.js";

View File

@@ -1,6 +1,6 @@
import { UUidWithPrefix } from "#components/Ausweis/types.js"
import { authorizationMiddleware } from "#lib/middleware/authorization.js"
import { AufnahmeSchema, ObjektSchema, prisma } from "@ibcornelsen/database/server"
import { AufnahmeSchema, ObjektSchema, prisma } from "#lib/server/prisma"
import { APIError, defineApiRoute } from "astro-typesafe-api/server"
import { z } from "zod"

View File

@@ -2,7 +2,7 @@ import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, UUidWithPrefix, Ver
import { filterAusweise } from "#lib/filters.js";
import { omit } from "#lib/helpers.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { Enums, prisma, VerbrauchsausweisWohnenSchema } from "@ibcornelsen/database/server";
import { Enums, prisma, VerbrauchsausweisWohnenSchema } from "#lib/server/prisma";
import { defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,6 +1,6 @@
import { z } from "zod";
import moment from "moment";
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
import { encodeToken } from "../../../lib/auth/token.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { TokenType } from "#lib/auth/types.js";

View File

@@ -1,7 +1,7 @@
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";
import * as nodemailer from "nodemailer"
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
import { decodeToken, encodeToken } from "#lib/auth/token.js";
import { TokenType } from "#lib/auth/types.js";
import { hashPassword } from "#lib/password.js";

View File

@@ -1,6 +1,6 @@
import { z } from "zod";
import moment from "moment";
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
import { encodeToken } from "../../../lib/auth/token.js";
import { validatePassword } from "../../../lib/password.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";

View File

@@ -1,7 +1,7 @@
import { BedarfsausweisWohnenClient, OptionalNullable, UUidWithPrefix, VerbrauchsausweisWohnenClient, ZodOverlap } from "#components/Ausweis/types.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { BedarfsausweisWohnenSchema, prisma, VerbrauchsausweisWohnenSchema } from "@ibcornelsen/database/server";
import { BedarfsausweisWohnenSchema, prisma, VerbrauchsausweisWohnenSchema } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,6 +1,6 @@
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { BedarfsausweisWohnenSchema, prisma } from "@ibcornelsen/database/server";
import { BedarfsausweisWohnenSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,6 +1,5 @@
import { authorizationMiddleware, maybeAuthorizationMiddleware } from "#lib/middleware/authorization.js";
import { BildSchema } from "@ibcornelsen/database/client";
import { prisma } from "@ibcornelsen/database/server";
import { prisma, BildSchema } from "#lib/server/prisma";
import { defineApiRoute, APIError } from "astro-typesafe-api/server";
import { z } from "astro:content";
import { fileURLToPath } from "url";

View File

@@ -1,5 +1,5 @@
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { BildSchema, prisma } from "@ibcornelsen/database/server";
import { BildSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";
import isBase64 from "is-base64";

View File

@@ -1,7 +1,7 @@
import { GEGNachweisWohnenClient, OptionalNullable, UUidWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { GEGNachweisGewerbeSchema, GEGNachweisWohnenSchema, prisma } from "@ibcornelsen/database/server";
import { GEGNachweisGewerbeSchema, GEGNachweisWohnenSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,6 +1,6 @@
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { GEGNachweisGewerbeSchema, GEGNachweisWohnenSchema, prisma } from "@ibcornelsen/database/server";
import { GEGNachweisGewerbeSchema, GEGNachweisWohnenSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,7 +1,7 @@
import { GEGNachweisWohnenClient, OptionalNullable, UUidWithPrefix, ZodOverlap } from "#components/Ausweis/types.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { GEGNachweisWohnenSchema, prisma } from "@ibcornelsen/database/server";
import { GEGNachweisWohnenSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,6 +1,6 @@
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { GEGNachweisWohnenSchema, prisma } from "@ibcornelsen/database/server";
import { GEGNachweisWohnenSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,6 +1,6 @@
import { z } from "zod";
import moment from "moment";
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
export const GET = defineApiRoute({

View File

@@ -1,7 +1,7 @@
import { ObjektClient, OptionalNullable, ZodOverlap } from "#components/Ausweis/types.js";
import { exclude } from "#lib/exclude.js";
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { ObjektSchema, prisma } from "@ibcornelsen/database/server";
import { ObjektSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,6 +1,6 @@
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { ObjektSchema, prisma } from "@ibcornelsen/database/server";
import { ObjektSchema, prisma } from "#lib/server/prisma";
import { defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,5 +1,5 @@
import { z } from "zod";
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
export const GET = defineApiRoute({

View File

@@ -1,7 +1,7 @@
import { getAusweisartFromUUID, UUidWithPrefix } from "#components/Ausweis/types.js";
import { omit } from "#lib/helpers.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { Enums, GEGEinpreisungSchema, prisma } from "@ibcornelsen/database/server";
import { Enums, GEGEinpreisungSchema, prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,5 +1,5 @@
import { z } from "zod";
import { Enums, RechnungSchema, prisma } from "@ibcornelsen/database/server";
import { Enums, RechnungSchema, prisma } from "#lib/server/prisma";
import { mollieClient } from "#lib/mollie.js";
import { PaymentMethod } from "@mollie/api-client";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";

View File

@@ -1,5 +1,5 @@
import { z } from "zod";
import { TicketsSchema, prisma } from "@ibcornelsen/database/server";
import { TicketsSchema, prisma } from "#lib/server/prisma";
import { defineApiRoute } from "astro-typesafe-api/server";
import { maybeAuthorizationMiddleware } from "#lib/middleware/authorization.js";
import { UUidWithPrefix } from "#components/Ausweis/types.js";

View File

@@ -1,5 +1,5 @@
import { authorizationMiddleware } from "#lib/middleware/authorization.js";
import { prisma, UnterlageSchema } from "@ibcornelsen/database/server";
import { prisma, UnterlageSchema } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";
import { fileURLToPath } from "url";

View File

@@ -1,6 +1,6 @@
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { hashPassword } from "#lib/password.js";
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,4 +1,4 @@
import { BenutzerSchema } from "@ibcornelsen/database/server";
import { BenutzerSchema } from "#lib/server/prisma";
import { z } from "zod";
import { defineApiRoute } from "astro-typesafe-api/server";
import { authorizationMiddleware } from "#lib/middleware/authorization.js";

View File

@@ -1,7 +1,7 @@
import { OptionalNullable, UUidWithPrefix, VerbrauchsausweisGewerbeClient, ZodOverlap } from "#components/Ausweis/types.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { prisma, VerbrauchsausweisGewerbeSchema } from "@ibcornelsen/database/server";
import { prisma, VerbrauchsausweisGewerbeSchema } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,6 +1,6 @@
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { prisma, VerbrauchsausweisGewerbeSchema } from "@ibcornelsen/database/server";
import { prisma, VerbrauchsausweisGewerbeSchema } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,7 +1,7 @@
import { OptionalNullable, UUidWithPrefix, VerbrauchsausweisWohnenClient, ZodOverlap } from "#components/Ausweis/types.js";
import { exclude } from "#lib/exclude.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { prisma, VerbrauchsausweisWohnenSchema } from "@ibcornelsen/database/server";
import { prisma, VerbrauchsausweisWohnenSchema } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -1,6 +1,6 @@
import { UUidWithPrefix } from "#components/Ausweis/types.js";
import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js";
import { prisma, VerbrauchsausweisWohnenSchema } from "@ibcornelsen/database/server";
import { prisma, VerbrauchsausweisWohnenSchema } from "#lib/server/prisma";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import { z } from "zod";

View File

@@ -5,7 +5,7 @@
*/
import { z } from "zod";
import { Enums, prisma } from "@ibcornelsen/database/server";
import { Enums, prisma } from "#lib/server/prisma";
import { mollieClient } from "#lib/mollie.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server";

View File

@@ -1,5 +1,5 @@
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
import { APIRoute } from "astro";
import * as fs from "fs";
import { fileURLToPath } from "url";

View File

@@ -4,7 +4,7 @@ import UserLayout from "#layouts/DashboardLayout.astro";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
import { omit } from "#lib/helpers";
import DashboardAusweisePruefenModule from "#modules/Dashboard/DashboardAusweisePruefenModule.svelte";
import { Enums, prisma } from "@ibcornelsen/database/server";
import { Enums, prisma } from "#lib/server/prisma";
import { createCaller } from "src/astro-typesafe-api-caller";
const caller = createCaller(Astro)

View File

@@ -1,10 +0,0 @@
---
import UserLayout from "../../../layouts/DashboardLayout.astro";
import DashboardPDFDesignerModule from "../../../modules/Dashboard/DashboardPDFDesignerModule.svelte";
---
<UserLayout title="PDF Designer">
<DashboardPDFDesignerModule client:only></DashboardPDFDesignerModule>
</UserLayout>

View File

@@ -1,16 +0,0 @@
---
import { createCaller } from "#lib/caller";
import UserLayout from "../../../layouts/DashboardLayout.astro";
import DashboardPDFViewerModule from "../../../modules/Dashboard/DashboardPDFViewerModule.svelte";
import { prisma } from "@ibcornelsen/database/server";
const caller = createCaller(Astro);
const ausweise = await caller.v1.verbrauchsausweisWohnen.getMany({
limit: 10
});
---
<UserLayout title="PDF Viewer">
<DashboardPDFViewerModule ausweise={ausweise} client:only></DashboardPDFViewerModule>
</UserLayout>

View File

@@ -4,7 +4,7 @@ import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
import DashboardModule from "#modules/Dashboard/DashboardModule.svelte";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
import Layout from "#layouts/Layout.astro";
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
import UserLayout from "#layouts/DashboardLayout.astro";
import DashboardAufnahmeModule from "#modules/Dashboard/DashboardAufnahmeModule.svelte";

View File

@@ -3,7 +3,7 @@ import UserLayout from "../../../layouts/DashboardLayout.astro";
import DashboardAusweiseModule from "#modules/Dashboard/DashboardAusweiseModule.svelte";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
import { createCaller } from "#lib/caller";
import { createCaller } from "src/astro-typesafe-api-caller";
const accessTokenValid = await validateAccessTokenServer(Astro);

View File

@@ -3,7 +3,7 @@ import { createCaller } from "../../astro-typesafe-api-caller.js";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
import DashboardModule from "#modules/Dashboard/DashboardModule.svelte";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
import DashboardLayout from "#layouts/DashboardLayout.astro";
const accessTokenValid = await validateAccessTokenServer(Astro);

View File

@@ -1,7 +1,7 @@
---
import Layout from "#layouts/Layout.astro";
import { getCurrentUser } from "#lib/server/user";
import { prisma } from "@ibcornelsen/database/server";
import { prisma } from "#lib/server/prisma";
const uidEinpreisung = Astro.url.searchParams.get("e");
const uidAusweis = Astro.url.searchParams.get("a");

View File

@@ -1,12 +1,6 @@
---
import Layout from "#layouts/Layout.astro";
import Widget from "#components/Widget.svelte";
---
<Layout title="Welcher Energieausweis">
<h1 class="text-3xl">Welcher Energieausweis?</h1>
<div class="mt-12 m-auto w-[95%] relative">
<Widget client:load />
</div>
</Layout>

View File

@@ -5,8 +5,12 @@ import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWo
import { createCaller } from "../../../astro-typesafe-api-caller.js";
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants";
import { validateAccessTokenServer } from "#server/lib/validateAccessToken";
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: VerbrauchsausweisWohnenClient = {} as VerbrauchsausweisWohnenClient;
let aufnahme: AufnahmeClient = {} as AufnahmeClient;
let objekt: ObjektClient = {} as ObjektClient;
@@ -76,5 +80,5 @@ if (uid) {
---
<AusweisLayout title="Verbrauchsausweis erstellen">
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} />
<VerbrauchsausweisWohnenModule client:only {ausweis} {objekt} {aufnahme} {bilder} {ausweistyp} />
</AusweisLayout>

View File

@@ -180,11 +180,7 @@ import Layout from "#layouts/Layout.astro";
</div>
<style lang="scss">
@tailwind base;
@tailwind components;
@tailwind utilities;
<style>
.glossar {
@apply flex flex-col space-y-6;
}

View File

@@ -2,8 +2,8 @@
import KaufabschlussModule from "#modules/KaufabschlussModule.svelte";
import AusweisLayout from "#layouts/AusweisLayoutPruefung.astro";
import { Enums } from "@ibcornelsen/database/client";
import { createCaller } from "#lib/caller";
import { Enums } from "#lib/client/prisma";
import { createCaller } from "src/astro-typesafe-api-caller";
// Man sollte nur auf diese Seite kommen, wenn ein Ausweis bereits vorliegt und in der Datenbank abgespeichert wurde.
const uid = Astro.url.searchParams.get("uid");

View File

@@ -2,7 +2,7 @@
import KundendatenModule from "#modules/KundendatenModule.svelte";
import AusweisLayout from "#layouts/AusweisLayoutPruefung.astro";
import { Enums } from "@ibcornelsen/database/client";
import { Enums } from "#lib/client/prisma";
import { getCurrentUser } from "#lib/server/user";
// Man sollte nur auf diese Seite kommen, wenn ein Ausweis bereits vorliegt und in der Datenbank abgespeichert wurde.

View File

@@ -1,6 +1,6 @@
---
import { Enums, prisma } from "@ibcornelsen/database/server";
import { Enums, prisma } from "#lib/server/prisma";
import Layout from "../../layouts/Layout.astro";
import PaymentSuccessModule from "#modules/PaymentSuccessModule.svelte";
import { sendPaymentSuccessMail } from "#lib/server/mail/payment-success";

View File

@@ -2,7 +2,7 @@ import { AufnahmeClient, BenutzerClient, getAusweisartFromUUID, ObjektClient, Up
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
import { pdfVerbrauchsausweisGewerbe } from "#lib/pdf/pdfVerbrauchsausweisGewerbe.js";
import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen.js";
import { Enums } from "@ibcornelsen/database/client";
import { Enums } from "#lib/client/prisma";
import { APIRoute } from "astro";
import { createCaller } from "src/astro-typesafe-api-caller.js";

View File

@@ -4,7 +4,7 @@ import { pdfDatenblattVerbrauchsausweisGewerbe } from "#lib/pdf/pdfDatenblattVer
import { pdfDatenblattVerbrauchsausweisWohnen } from "#lib/pdf/pdfDatenblattVerbrauchsausweisWohnen.js";
import { pdfVerbrauchsausweisGewerbe } from "#lib/pdf/pdfVerbrauchsausweisGewerbe.js";
import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen.js";
import { Enums } from "@ibcornelsen/database/client";
import { Enums } from "#lib/client/prisma";
import { APIRoute } from "astro";
import { createCaller } from "src/astro-typesafe-api-caller.js";