finalize migration (yay)

This commit is contained in:
tw-blue
2025-12-10 22:11:30 +01:00
parent cd6cfec7f3
commit c7d53c88bc
40 changed files with 966 additions and 499 deletions
+31 -24
View File
@@ -2,10 +2,8 @@ import { Inject, Injectable } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { MAT_DATE_LOCALE } from '@angular/material/core';
import { Locale, parse } from 'date-fns';
import {
Member,
PickMemberExcludeKeyofMemberIdOrLoeschenam,
} from '../generated-api/api';
import { MemberCreateArgs, MemberDto } from '../generated-api/api';
import { dateToLocal, dateToUTC } from '../pipes/date-pipe.pipe';
interface MemberForm {
id: FormControl<string | null | undefined>;
@@ -15,12 +13,12 @@ interface MemberForm {
geburtsdatum: FormControl<Date | null>;
geburtsort: FormControl<string | null | undefined>;
passnummer: FormControl<string | null | undefined>;
uvertrag: FormControl<boolean | null | undefined>;
verein: FormControl<boolean | null | undefined>;
kontakt: FormControl<string | null | undefined>;
graduierung: FormControl<string | null | undefined>;
kuendigungzum: FormControl<string | null | undefined>;
letztePruefung: FormControl<string | null | undefined>;
kuendigungzum: FormControl<Date | null | undefined>;
letztePruefung: FormControl<Date | null | undefined>;
marker: FormControl<boolean | null | undefined>;
}
@Injectable({
@@ -28,7 +26,7 @@ interface MemberForm {
})
export class MemberDtoHelper {
constructor(@Inject(MAT_DATE_LOCALE) private locale: Locale) {}
public newMemberForm(member?: Member): FormGroup<MemberForm> {
public newMemberForm(member?: MemberDto): FormGroup<MemberForm> {
const geburtsdatum = member?.geburtsdatum;
let enDate: Date | null = null;
if (geburtsdatum) {
@@ -38,62 +36,71 @@ export class MemberDtoHelper {
});
}
return new FormGroup({
return new FormGroup<MemberForm>({
id: new FormControl(member?.id),
vorname: new FormControl(member?.vorname),
nachname: new FormControl(member?.nachname),
geschlecht: new FormControl(member?.geschlecht),
geburtsdatum: new FormControl(enDate),
geburtsdatum: new FormControl(
member?.geburtsdatum ? dateToUTC(member?.geburtsdatum) : null,
),
geburtsort: new FormControl(member?.geburtsort),
passnummer: new FormControl(member?.passnummer),
uvertrag: new FormControl(member?.uvertrag),
verein: new FormControl(member?.verein),
kontakt: new FormControl(member?.kontakt),
graduierung: new FormControl(member?.graduierung),
kuendigungzum: new FormControl(member?.kuendigungzum),
letztePruefung: new FormControl(member?.letztePruefung),
kuendigungzum: new FormControl(
member?.kuendigungzum ? dateToUTC(member?.kuendigungzum) : null,
),
letztePruefung: new FormControl(
member?.letztePruefung
? dateToUTC(member?.letztePruefung)
: null,
),
marker: new FormControl(false),
});
}
memberFromForm(form: FormGroup<MemberForm>): Member {
memberFromForm(form: FormGroup<MemberForm>): MemberDto {
return {
id: form.controls.id.value ?? null,
vorname: form.controls.vorname.value ?? null,
nachname: form.controls.nachname.value ?? null,
geschlecht: form.controls.geschlecht.value ?? null,
geburtsdatum: form.controls.geburtsdatum.value
? JSON.stringify(form.controls.geburtsdatum.value)
? dateToLocal(form.controls.geburtsdatum.value).toISOString()
: null,
geburtsort: form.controls.geburtsort.value ?? null,
passnummer: form.controls.passnummer.value ?? null,
uvertrag: form.controls.uvertrag.value ?? null,
verein: form.controls.verein.value ?? null,
kontakt: form.controls.kontakt.value ?? null,
graduierung: form.controls.graduierung?.value ?? null,
kuendigungzum: form.controls.kuendigungzum.value ?? null, //TODO not for new member
letztePruefung: form.controls.letztePruefung?.value ?? null, //TODO not for new member
loeschenam: null, //TODO? not client settable
kuendigungzum: form.controls.kuendigungzum.value
? dateToLocal(form.controls.kuendigungzum.value).toISOString()
: null,
letztePruefung: form.controls.letztePruefung.value
? dateToLocal(form.controls.letztePruefung.value).toISOString()
: null,
marker: form.controls.marker.value ?? false,
};
}
newMemberFromForm(
form: FormGroup<MemberForm>,
): PickMemberExcludeKeyofMemberIdOrLoeschenam {
newMemberFromForm(form: FormGroup<MemberForm>): MemberCreateArgs {
return {
vorname: form.controls.vorname.value ?? null,
nachname: form.controls.nachname.value ?? null,
geschlecht: form.controls.geschlecht.value ?? null,
geburtsdatum: form.controls.geburtsdatum.value
? JSON.stringify(form.controls.geburtsdatum.value)
? dateToLocal(form.controls.geburtsdatum.value).toISOString()
: null,
geburtsort: form.controls.geburtsort.value ?? null,
passnummer: form.controls.passnummer.value ?? null,
uvertrag: form.controls.uvertrag.value ?? null,
verein: form.controls.verein.value ?? null,
kontakt: form.controls.kontakt.value ?? null,
graduierung: form.controls.graduierung?.value ?? null,
kuendigungzum: null, //TODO not for new member
letztePruefung: null, //TODO not for new member
marker: form.controls.marker.value ?? false,
};
}
}