Speichern direkt auf Ausweis
This commit is contained in:
@@ -135,7 +135,7 @@
|
||||
);
|
||||
blockLocalStorageSync = true;
|
||||
localStorage.clear()
|
||||
window.location.href = `/speichern-erfolgreich?id=${ausweis.id}`
|
||||
window.location.href = `/dashboard/objekte?id=${ausweis.id}`
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
36
src/lib/server/mail/speichern-erfolgreich.ts
Normal file
36
src/lib/server/mail/speichern-erfolgreich.ts
Normal file
@@ -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" <info@online-energieausweis.org>`,
|
||||
to: user.email,
|
||||
subject: `Ihr Ausweis wurde gespeichert - IBCornelsen - (ID: ${ausweis_id})`,
|
||||
html: `<p>Sehr geehrte*r ${user.vorname} ${user.name},</p>
|
||||
<p>Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.<br><br>
|
||||
|
||||
Ihre Vorgänge und Ausweise können Sie in Ihrem Kundenkonto einsehen und bearbeiten:<br><br>
|
||||
|
||||
<a href="${BASE_URI}/dashboard">zum Kundenkonto</a><br></p>
|
||||
<p>
|
||||
Mit freundlichen Grüßen,
|
||||
<br>
|
||||
Dipl.-Ing. Jens Cornelsen
|
||||
<br>
|
||||
<br>
|
||||
<strong>IB Cornelsen</strong>
|
||||
<br>
|
||||
Katendeich 5A
|
||||
<br>
|
||||
21035 Hamburg
|
||||
<br>
|
||||
www.online-energieausweis.org
|
||||
<br>
|
||||
<br>
|
||||
fon 040 · 209339850
|
||||
<br>
|
||||
fax 040 · 209339859
|
||||
</p>`
|
||||
})
|
||||
}
|
||||
@@ -265,7 +265,7 @@
|
||||
);
|
||||
|
||||
localStorage.clear();
|
||||
window.location.href = `/speichern-erfolgreich?id=${ausweis.id}`
|
||||
window.location.href = `/dashboard/objekte?id=${ausweis.id}`
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -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
|
||||
},
|
||||
});
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -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;
|
||||
},
|
||||
});
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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" <info@online-energieausweis.org>`,
|
||||
to: user.email,
|
||||
subject: `Ihr Ausweis wurde gespeichert - IBCornelsen - (ID: ${id})`,
|
||||
html: `<p>Sehr geehrte*r ${user.vorname} ${user.name},</p>
|
||||
<p>Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.<br><br>
|
||||
|
||||
Ihre Vorgänge und Ausweise können Sie in Ihrem Kundenkonto einsehen und bearbeiten:<br><br>
|
||||
|
||||
<a href="${BASE_URI}/dashboard">zum Kundenkonto</a><br></p>
|
||||
<p>
|
||||
Mit freundlichen Grüßen,
|
||||
<br>
|
||||
Dipl.-Ing. Jens Cornelsen
|
||||
<br>
|
||||
<br>
|
||||
<strong>IB Cornelsen</strong>
|
||||
<br>
|
||||
Katendeich 5A
|
||||
<br>
|
||||
21035 Hamburg
|
||||
<br>
|
||||
www.online-energieausweis.org
|
||||
<br>
|
||||
<br>
|
||||
fon 040 · 209339850
|
||||
<br>
|
||||
fax 040 · 209339859
|
||||
</p>`
|
||||
})
|
||||
---
|
||||
|
||||
<Layout title="Speichern Erfolgreich">
|
||||
<h1>Ihr Energieausweis wurde gespeichert</h1>
|
||||
<p>Ihr Energieausweis wurde erfolgreich in Ihrem Konto gespeichert. Sie können ihn jederzeit in Ihrem Kundenbereich abrufen.</p>
|
||||
<a href="/dashboard">👉 Jetzt ansehen</a>
|
||||
</Layout>
|
||||
Reference in New Issue
Block a user