Benutzerdaten beim Speichern/Bestellen in Tabelle Benutzer speichern
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { Aufnahme, Objekt } from "#lib/client/prisma.js";
|
import { Aufnahme, Benutzer, Objekt } from "#lib/client/prisma.js";
|
||||||
import { api } from "astro-typesafe-api/client";
|
import { api } from "astro-typesafe-api/client";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
|
|
||||||
@@ -161,4 +161,32 @@ export async function objektSpeichern(objekt: Objekt & { id?: string }): Promise
|
|||||||
|
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function benutzerSpeichern(benutzer: Partial<Benutzer>): Promise<string> {
|
||||||
|
const completeBenutzer: Benutzer = {
|
||||||
|
id: benutzer.id,
|
||||||
|
name: benutzer.name ?? null,
|
||||||
|
email: benutzer.email,
|
||||||
|
passwort: benutzer.passwort,
|
||||||
|
adresse: benutzer.adresse ?? null,
|
||||||
|
anrede: benutzer.anrede ?? null,
|
||||||
|
firma: benutzer.firma ?? null,
|
||||||
|
vorname: benutzer.vorname ?? null,
|
||||||
|
ort: benutzer.ort ?? null,
|
||||||
|
plz: benutzer.plz ?? null,
|
||||||
|
profilbild: benutzer.profilbild ?? null,
|
||||||
|
telefon: benutzer.telefon ?? null,
|
||||||
|
updated_at: new Date(),
|
||||||
|
verified: false
|
||||||
|
};
|
||||||
|
|
||||||
|
await api.user.POST.fetch(completeBenutzer
|
||||||
|
, {
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return benutzer.id;
|
||||||
}
|
}
|
||||||
@@ -32,7 +32,9 @@
|
|||||||
import { getMaximumDevitationInPercent } from "#client/lib/helpers.js";
|
import { getMaximumDevitationInPercent } from "#client/lib/helpers.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweis_2016_Client } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Client.js";
|
import { endEnergieVerbrauchVerbrauchsausweis_2016_Client } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016_Client.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Client } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016_Client.js";
|
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Client } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016_Client.js";
|
||||||
|
import { benutzerSpeichern } from "#client/lib/speichern.js";
|
||||||
|
import { exclude } from "#lib/exclude.js";
|
||||||
|
|
||||||
export let user: Partial<BenutzerClient>;
|
export let user: Partial<BenutzerClient>;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbe | BedarfsausweisWohnen;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
@@ -249,6 +251,18 @@
|
|||||||
} else {
|
} else {
|
||||||
result = await ausweisSpeichern(ausweis, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
result = await ausweisSpeichern(ausweis, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let resultUser: Awaited<ReturnType<typeof benutzerSpeichern>> | Awaited<ReturnType<typeof benutzerSpeichern>> | null = null;
|
||||||
|
|
||||||
|
const benutzerObjekt = exclude({
|
||||||
|
...user,
|
||||||
|
name,
|
||||||
|
vorname,
|
||||||
|
telefon
|
||||||
|
}, ["rolle"]);
|
||||||
|
|
||||||
|
resultUser = await benutzerSpeichern(benutzerObjekt);
|
||||||
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
addNotification({
|
addNotification({
|
||||||
dismissable: true,
|
dismissable: true,
|
||||||
@@ -312,6 +326,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let resultUser: Awaited<ReturnType<typeof benutzerSpeichern>> | Awaited<ReturnType<typeof benutzerSpeichern>> | null = null;
|
||||||
|
|
||||||
|
const benutzerObjekt = exclude({
|
||||||
|
...user,
|
||||||
|
name,
|
||||||
|
vorname,
|
||||||
|
telefon
|
||||||
|
}, ["rolle"]);
|
||||||
|
|
||||||
|
resultUser = await benutzerSpeichern(benutzerObjekt);
|
||||||
|
|
||||||
if (rechnung && rechnung.status === "paid") {
|
if (rechnung && rechnung.status === "paid") {
|
||||||
window.location.href = "/dashboard"
|
window.location.href = "/dashboard"
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { adminMiddleware, authorizationMiddleware } from "#lib/middleware/author
|
|||||||
import { hashPassword } from "#lib/password.js";
|
import { hashPassword } from "#lib/password.js";
|
||||||
import { createLexOfficeCustomer } from "#lib/server/lexoffice.js";
|
import { createLexOfficeCustomer } from "#lib/server/lexoffice.js";
|
||||||
import { sendRegisterMail } from "#lib/server/mail/registrierung.js";
|
import { sendRegisterMail } from "#lib/server/mail/registrierung.js";
|
||||||
import { prisma } from "#lib/server/prisma.js";
|
import { Benutzer, prisma } from "#lib/server/prisma.js";
|
||||||
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
import { APIError, defineApiRoute } from "astro-typesafe-api/server";
|
||||||
import { BenutzerSchema } from "src/generated/zod/benutzer.js";
|
import { BenutzerSchema } from "src/generated/zod/benutzer.js";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
@@ -15,8 +15,7 @@ export const POST = defineApiRoute({
|
|||||||
id: true,
|
id: true,
|
||||||
lex_office_id: true,
|
lex_office_id: true,
|
||||||
rolle: true,
|
rolle: true,
|
||||||
created_at: true,
|
created_at: true
|
||||||
updated_at: true
|
|
||||||
}),
|
}),
|
||||||
middleware: authorizationMiddleware,
|
middleware: authorizationMiddleware,
|
||||||
async fetch(input, context, user) {
|
async fetch(input, context, user) {
|
||||||
@@ -24,24 +23,28 @@ export const POST = defineApiRoute({
|
|||||||
// TODO: Email wurde geändert, neue Bestätigunsmail schicken.
|
// TODO: Email wurde geändert, neue Bestätigunsmail schicken.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const updateData: any = {};
|
||||||
|
if (input.adresse) updateData.adresse = input.adresse;
|
||||||
|
if (input.anrede) updateData.anrede = input.anrede;
|
||||||
|
if (input.email) updateData.email = input.email;
|
||||||
|
if (input.firma) updateData.firma = input.firma;
|
||||||
|
if (input.name) updateData.name = input.name;
|
||||||
|
if (input.vorname) updateData.vorname = input.vorname;
|
||||||
|
if (input.ort) updateData.ort = input.ort;
|
||||||
|
// if (input.passwort) updateData.passwort = hashPassword(input.passwort);
|
||||||
|
if (input.plz) updateData.plz = input.plz;
|
||||||
|
if (input.profilbild) updateData.profilbild = input.profilbild;
|
||||||
|
if (input.telefon) updateData.telefon = input.telefon;
|
||||||
|
if (input.verified) updateData.telefon = input.verified;
|
||||||
|
|
||||||
await prisma.benutzer.update({
|
await prisma.benutzer.update({
|
||||||
where: {
|
where: {
|
||||||
id: user.id
|
id: user.id
|
||||||
},
|
},
|
||||||
data: {
|
data: updateData
|
||||||
adresse: input.adresse,
|
});
|
||||||
anrede: input.anrede,
|
|
||||||
email: input.email,
|
|
||||||
firma: input.firma,
|
|
||||||
name: input.name,
|
|
||||||
vorname: input.vorname,
|
|
||||||
ort: input.ort,
|
|
||||||
passwort: hashPassword(input.passwort),
|
|
||||||
plz: input.plz,
|
|
||||||
profilbild: input.profilbild,
|
|
||||||
telefon: input.telefon,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user