use signal forms

This commit is contained in:
toni
2026-01-03 01:17:40 +01:00
parent 00235a769a
commit 5a19b3a7a6
12 changed files with 298 additions and 296 deletions
@@ -103,7 +103,7 @@ export class MembersContoller extends Controller {
) {
await this.membersService.scheduleDeletion(
memberId,
cancelDate,
cancelDate ? cancelDate : null,
request,
);
}
+39 -38
View File
@@ -1,51 +1,52 @@
import { type MemberModel as DbMember } from "../generated/prisma/models.js";
export interface MemberDto {
id: string | null;
vorname: string | null;
nachname: string | null;
geburtsdatum: string | null;
geburtsort: string | null;
geschlecht: string | null;
passnummer: string | null;
verein: boolean | null;
graduierung: string | null;
letztePruefung: string | null;
kontakt: string | null;
kuendigungzum: string | null;
marker: boolean | null;
id: string;
vorname: string;
nachname: string;
geburtsdatum: string;
geburtsort: string;
geschlecht: string;
passnummer: string;
verein: boolean;
graduierung: string;
letztePruefung: string;
kontakt: string;
kuendigungzum: string;
marker: boolean;
}
export class MemberCreateArgs implements Omit<MemberDto, "id"> {
vorname!: string | null;
nachname!: string | null;
geburtsdatum!: string | null;
geburtsort!: string | null;
geschlecht!: string | null;
passnummer!: string | null;
verein!: boolean | null;
graduierung!: string | null;
letztePruefung!: string | null;
kontakt!: string | null;
kuendigungzum!: string | null;
marker!: boolean | null;
export class MemberCreateArgs implements Omit<
MemberDto,
"id" | "kuendigungzum" | "letztePruefung"
> {
vorname!: string;
nachname!: string;
geburtsdatum!: string;
geburtsort!: string;
geschlecht!: string;
passnummer!: string;
verein!: boolean;
graduierung!: string;
kontakt!: string;
marker!: boolean;
}
export function mapDbMemberToMember(dbMember: DbMember): MemberDto {
return {
geburtsdatum: dbMember.geburtsdatum?.toDateString() ?? null,
geburtsdatum: dbMember.geburtsdatum?.toDateString() ?? "",
id: dbMember.id,
nachname: dbMember.nachname,
geburtsort: dbMember.geburtsort,
geschlecht: dbMember.geschlecht,
graduierung: dbMember.graduierung,
vorname: dbMember.vorname,
kontakt: dbMember.kontakt,
kuendigungzum: dbMember.kuendigungzum?.toDateString() ?? null,
letztePruefung: dbMember.letztePruefung?.toDateString() ?? null,
passnummer: dbMember.passnummer,
verein: dbMember.verein,
marker: dbMember.marker,
nachname: dbMember.nachname ?? "",
geburtsort: dbMember.geburtsort ?? "",
geschlecht: dbMember.geschlecht ?? "",
graduierung: dbMember.graduierung ?? "",
vorname: dbMember.vorname ?? "",
kontakt: dbMember.kontakt ?? "",
kuendigungzum: dbMember.kuendigungzum?.toDateString() ?? "",
letztePruefung: dbMember.letztePruefung?.toDateString() ?? "",
passnummer: dbMember.passnummer ?? "",
verein: dbMember.verein ?? false,
marker: dbMember.marker ?? false,
};
}
+14 -2
View File
@@ -68,7 +68,19 @@ export class MembersService {
const modifiedMember = await this.database.doRequest(
async prisma =>
await prisma.member.update({
data: { ...member, id: id },
data: {
...member,
id: id,
letztePruefung: member.letztePruefung
? member.letztePruefung
: null,
geburtsdatum: member.geburtsdatum
? member.geburtsdatum
: null,
kuendigungzum: member.kuendigungzum
? member.kuendigungzum
: null,
},
where: { id: id },
}),
request,
@@ -79,7 +91,7 @@ export class MembersService {
public async scheduleDeletion(
memberId: string,
cancelDate: Date,
cancelDate: Date | null,
request: express.Request,
) {
await this.database.doRequest(