diff --git a/src/components/Ausweis/ButtonWeiterHilfe.svelte b/src/components/Ausweis/ButtonWeiterHilfe.svelte index 963b722f..a4aa436e 100644 --- a/src/components/Ausweis/ButtonWeiterHilfe.svelte +++ b/src/components/Ausweis/ButtonWeiterHilfe.svelte @@ -135,7 +135,7 @@ ); blockLocalStorageSync = true; localStorage.clear() - window.location.href = `/speichern-erfolgreich?id=${ausweis.id}` + window.location.href = `/dashboard/objekte?id=${ausweis.id}` } } diff --git a/src/lib/server/mail/speichern-erfolgreich.ts b/src/lib/server/mail/speichern-erfolgreich.ts new file mode 100644 index 00000000..042d8c3e --- /dev/null +++ b/src/lib/server/mail/speichern-erfolgreich.ts @@ -0,0 +1,36 @@ +import { BASE_URI } from "#lib/constants.js"; +import { transport } from "#lib/mail.js"; +import { Benutzer } from "../prisma.js"; + +export async function sendAusweisGespeichertMail(user: Benutzer, ausweis_id: string) { + await transport.sendMail({ + from: `"IBCornelsen" `, + to: user.email, + subject: `Ihr Ausweis wurde gespeichert - IBCornelsen - (ID: ${ausweis_id})`, + html: `

Sehr geehrte*r ${user.vorname} ${user.name},

+

Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.

+ + Ihre Vorgänge und Ausweise können Sie in Ihrem Kundenkonto einsehen und bearbeiten:

+ + zum Kundenkonto

+

+ Mit freundlichen Grüßen, +
+ Dipl.-Ing. Jens Cornelsen +
+
+ IB Cornelsen +
+ Katendeich 5A +
+ 21035 Hamburg +
+ www.online-energieausweis.org +
+
+ fon 040 · 209339850 +
+ fax 040 · 209339859 +

` + }) +} \ No newline at end of file diff --git a/src/modules/KundendatenModule.svelte b/src/modules/KundendatenModule.svelte index 4c644c40..e676aa71 100644 --- a/src/modules/KundendatenModule.svelte +++ b/src/modules/KundendatenModule.svelte @@ -265,7 +265,7 @@ ); localStorage.clear(); - window.location.href = `/speichern-erfolgreich?id=${ausweis.id}` + window.location.href = `/dashboard/objekte?id=${ausweis.id}` } } diff --git a/src/pages/api/bedarfsausweis-gewerbe/[id].ts b/src/pages/api/bedarfsausweis-gewerbe/[id].ts index 7c6d879a..be3a40f1 100644 --- a/src/pages/api/bedarfsausweis-gewerbe/[id].ts +++ b/src/pages/api/bedarfsausweis-gewerbe/[id].ts @@ -3,6 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { BedarfsausweisGewerbeSchema } from "src/generated/zod/bedarfsausweisgewerbe.js"; @@ -47,6 +48,10 @@ export const PATCH = defineApiRoute({ }, data: input }) + + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, ctx.params.id as string) + } }, }) diff --git a/src/pages/api/bedarfsausweis-gewerbe/index.ts b/src/pages/api/bedarfsausweis-gewerbe/index.ts index 101777e5..726a3b70 100644 --- a/src/pages/api/bedarfsausweis-gewerbe/index.ts +++ b/src/pages/api/bedarfsausweis-gewerbe/index.ts @@ -2,7 +2,8 @@ import { UUidWithPrefix } from "#components/Ausweis/types.js"; import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; -import { prisma } from "#lib/server/prisma.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; +import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { BedarfsausweisGewerbeSchema } from "src/generated/zod/bedarfsausweisgewerbe.js"; import { z } from "zod"; @@ -65,7 +66,9 @@ export const PUT = defineApiRoute({ } } }); - + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, id) + } return nachweis.id }, }); diff --git a/src/pages/api/bedarfsausweis-wohnen/[id].ts b/src/pages/api/bedarfsausweis-wohnen/[id].ts index 346380ab..1dccd9c8 100644 --- a/src/pages/api/bedarfsausweis-wohnen/[id].ts +++ b/src/pages/api/bedarfsausweis-wohnen/[id].ts @@ -3,6 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { BedarfsausweisWohnenSchema } from "src/generated/zod/bedarfsausweiswohnen.js"; @@ -47,6 +48,9 @@ export const PATCH = defineApiRoute({ }, data: input }) + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, ctx.params.id as string) + } }, }) diff --git a/src/pages/api/bedarfsausweis-wohnen/index.ts b/src/pages/api/bedarfsausweis-wohnen/index.ts index 1969a411..ca6e96f2 100644 --- a/src/pages/api/bedarfsausweis-wohnen/index.ts +++ b/src/pages/api/bedarfsausweis-wohnen/index.ts @@ -5,7 +5,8 @@ import { authorizationHeaders, authorizationMiddleware, } from "#lib/middleware/authorization.js"; -import { prisma } from "#lib/server/prisma.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; +import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { BedarfsausweisWohnenSchema } from "src/generated/zod/bedarfsausweiswohnen.js"; import { z } from "zod"; @@ -72,7 +73,9 @@ export const PUT = defineApiRoute({ }, }, }); - + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, id) + } return id; }, }); diff --git a/src/pages/api/geg-nachweis-gewerbe/[id].ts b/src/pages/api/geg-nachweis-gewerbe/[id].ts index 92290c42..da805fb1 100644 --- a/src/pages/api/geg-nachweis-gewerbe/[id].ts +++ b/src/pages/api/geg-nachweis-gewerbe/[id].ts @@ -3,6 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { GEGNachweisGewerbeSchema } from "src/generated/zod/gegnachweisgewerbe.js"; @@ -47,6 +48,9 @@ export const PATCH = defineApiRoute({ }, data: input }) + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, ctx.params.id as string) + } }, }) diff --git a/src/pages/api/geg-nachweis-gewerbe/index.ts b/src/pages/api/geg-nachweis-gewerbe/index.ts index 457f140c..82c253a0 100644 --- a/src/pages/api/geg-nachweis-gewerbe/index.ts +++ b/src/pages/api/geg-nachweis-gewerbe/index.ts @@ -2,7 +2,8 @@ import { UUidWithPrefix } from "#components/Ausweis/types.js"; import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; -import { prisma } from "#lib/server/prisma.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; +import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { GEGNachweisGewerbeSchema } from "src/generated/zod/gegnachweisgewerbe.js"; import { z } from "zod"; @@ -82,7 +83,9 @@ export const PUT = defineApiRoute({ }, }, }); - + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, id) + } return { id: nachweis.id, objekt_id: nachweis.aufnahme.objekt.id, diff --git a/src/pages/api/geg-nachweis-wohnen/[id].ts b/src/pages/api/geg-nachweis-wohnen/[id].ts index 64a188e2..81bd7b19 100644 --- a/src/pages/api/geg-nachweis-wohnen/[id].ts +++ b/src/pages/api/geg-nachweis-wohnen/[id].ts @@ -3,6 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { GEGNachweisWohnenSchema } from "src/generated/zod/gegnachweiswohnen.js"; @@ -47,6 +48,9 @@ export const PATCH = defineApiRoute({ }, data: input }) + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, ctx.params.id as string) + } }, }) diff --git a/src/pages/api/geg-nachweis-wohnen/index.ts b/src/pages/api/geg-nachweis-wohnen/index.ts index 6d101626..3de71e47 100644 --- a/src/pages/api/geg-nachweis-wohnen/index.ts +++ b/src/pages/api/geg-nachweis-wohnen/index.ts @@ -2,7 +2,8 @@ import { UUidWithPrefix } from "#components/Ausweis/types.js"; import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; -import { prisma } from "#lib/server/prisma.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; +import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { GEGNachweisWohnenSchema } from "src/generated/zod/gegnachweiswohnen.js"; import { z } from "zod"; @@ -82,7 +83,9 @@ export const PUT = defineApiRoute({ }, }, }); - + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, id) + } return { id: nachweis.id, objekt_id: nachweis.aufnahme.objekt.id, diff --git a/src/pages/api/verbrauchsausweis-gewerbe/[id].ts b/src/pages/api/verbrauchsausweis-gewerbe/[id].ts index 0469cb94..8a90b0f4 100644 --- a/src/pages/api/verbrauchsausweis-gewerbe/[id].ts +++ b/src/pages/api/verbrauchsausweis-gewerbe/[id].ts @@ -3,6 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { VerbrauchsausweisGewerbeSchema } from "src/generated/zod/verbrauchsausweisgewerbe.js"; @@ -44,6 +45,10 @@ export const PATCH = defineApiRoute({ }, data: input }) + + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, ctx.params.id as string) + } }, }) diff --git a/src/pages/api/verbrauchsausweis-gewerbe/index.ts b/src/pages/api/verbrauchsausweis-gewerbe/index.ts index f18f9fa3..d5127bbf 100644 --- a/src/pages/api/verbrauchsausweis-gewerbe/index.ts +++ b/src/pages/api/verbrauchsausweis-gewerbe/index.ts @@ -2,6 +2,7 @@ import { UUidWithPrefix } from "#components/Ausweis/types.js"; import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; import { prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { VerbrauchsausweisGewerbeSchema } from "src/generated/zod/verbrauchsausweisgewerbe.js"; @@ -81,6 +82,9 @@ export const PUT = defineApiRoute({ }, }); + await sendAusweisGespeichertMail(user, id) + + return { id: id, objekt_id: createdAusweis.aufnahme.objekt.id, diff --git a/src/pages/api/verbrauchsausweis-wohnen/[id].ts b/src/pages/api/verbrauchsausweis-wohnen/[id].ts index 116cf4b8..43678e8e 100644 --- a/src/pages/api/verbrauchsausweis-wohnen/[id].ts +++ b/src/pages/api/verbrauchsausweis-wohnen/[id].ts @@ -3,6 +3,7 @@ import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { exclude } from "#lib/exclude.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { VerbrauchsausweisWohnenSchema } from "src/generated/zod/verbrauchsausweiswohnen.js"; @@ -45,6 +46,10 @@ export const PATCH = defineApiRoute({ }, data: input }) + + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, ctx.params.id as string) + } }, }) diff --git a/src/pages/api/verbrauchsausweis-wohnen/index.ts b/src/pages/api/verbrauchsausweis-wohnen/index.ts index 922d15ee..7f01fe4f 100644 --- a/src/pages/api/verbrauchsausweis-wohnen/index.ts +++ b/src/pages/api/verbrauchsausweis-wohnen/index.ts @@ -2,7 +2,8 @@ import { UUidWithPrefix } from "#components/Ausweis/types.js"; import { VALID_UUID_PREFIXES } from "#lib/constants.js"; import { generatePrefixedId } from "#lib/db.js"; import { authorizationHeaders, authorizationMiddleware } from "#lib/middleware/authorization.js"; -import { prisma } from "#lib/server/prisma.js"; +import { sendAusweisGespeichertMail } from "#lib/server/mail/speichern-erfolgreich.js"; +import { Enums, prisma } from "#lib/server/prisma.js"; import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { VerbrauchsausweisWohnenSchema } from "src/generated/zod/verbrauchsausweiswohnen.js"; import { z } from "zod"; @@ -84,7 +85,10 @@ export const PUT = defineApiRoute({ }, }, }); - + + if (user.rolle === Enums.BenutzerRolle.USER) { + await sendAusweisGespeichertMail(user, id) + } return { id: createdAusweis.id, objekt_id: createdAusweis.aufnahme.objekt.id, diff --git a/src/pages/speichern-erfolgreich.astro b/src/pages/speichern-erfolgreich.astro deleted file mode 100644 index bca0234e..00000000 --- a/src/pages/speichern-erfolgreich.astro +++ /dev/null @@ -1,73 +0,0 @@ ---- -import Layout from "#layouts/Layout.astro"; -import { BASE_URI } from "#lib/constants"; -import { transport } from "#lib/mail"; -import { getPrismaAusweisAdapter } from "#lib/server/ausweis"; -import { Enums } from "#lib/server/prisma"; -import { getCurrentUser } from "#lib/server/user"; - -const user = await getCurrentUser(Astro) -const id = Astro.url.searchParams.get("id"); - -if (!user || !id) { - return Astro.redirect("/") -} - -// Wir wollen keine Bestätigungsmail wenn ein Admin speichert. -if (user.rolle === Enums.BenutzerRolle.ADMIN) { - return Astro.redirect("/dashboard") -} - -const adapter = getPrismaAusweisAdapter(id || "") - -if (!adapter) { - return Astro.redirect("/") -} - -const ausweis = await adapter.findUnique({ - where: { - id - } -}) - -if (!ausweis) { - return Astro.redirect("/") -} - -transport.sendMail({ - from: `"IBCornelsen" `, - to: user.email, - subject: `Ihr Ausweis wurde gespeichert - IBCornelsen - (ID: ${id})`, - html: `

Sehr geehrte*r ${user.vorname} ${user.name},

-

Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.

- - Ihre Vorgänge und Ausweise können Sie in Ihrem Kundenkonto einsehen und bearbeiten:

- - zum Kundenkonto

-

- Mit freundlichen Grüßen, -
- Dipl.-Ing. Jens Cornelsen -
-
- IB Cornelsen -
- Katendeich 5A -
- 21035 Hamburg -
- www.online-energieausweis.org -
-
- fon 040 · 209339850 -
- fax 040 · 209339859 -

` -}) ---- - - -

Ihr Energieausweis wurde gespeichert

-

Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.

- 👉 Jetzt ansehen -
\ No newline at end of file