internal Id to member

This commit is contained in:
Julian Krauser 2025-01-02 17:08:53 +01:00
parent cfefcd81d7
commit 0d2c7dd7f1
17 changed files with 101 additions and 20 deletions

View file

@ -6,6 +6,7 @@ export interface CreateMemberCommand {
lastname: string;
nameaffix: string;
birthdate: Date;
internalId?: string;
}
export interface UpdateMemberCommand {
@ -15,6 +16,7 @@ export interface UpdateMemberCommand {
lastname: string;
nameaffix: string;
birthdate: Date;
internalId?: string;
}
export interface UpdateMemberNewsletterCommand {

View file

@ -27,6 +27,7 @@ export default abstract class MemberCommandHandler {
lastname: createMember.lastname,
nameaffix: createMember.nameaffix,
birthdate: createMember.birthdate,
internalId: createMember.internalId,
})
.execute()
.then((result) => {
@ -53,6 +54,7 @@ export default abstract class MemberCommandHandler {
lastname: updateMember.lastname,
nameaffix: updateMember.nameaffix,
birthdate: updateMember.birthdate,
internalId: updateMember.internalId,
})
.where("id = :id", { id: updateMember.id })
.execute()

View file

@ -1,5 +1,4 @@
export interface CreateMembershipCommand {
internalId?: string;
start: Date;
memberId: number;
statusId: number;
@ -7,7 +6,6 @@ export interface CreateMembershipCommand {
export interface UpdateMembershipCommand {
id: number;
internalId?: string;
start: Date;
end?: Date;
terminationReason?: string;

View file

@ -8,11 +8,11 @@ import { CreateMembershipCommand, DeleteMembershipCommand, UpdateMembershipComma
export default abstract class MembershipCommandHandler {
/**
* @description create membership
* @param CreateMembershipCommand
* @param {CreateMembershipCommand} createMembership
* @returns {Promise<number>}
*/
static async create(createMembership: CreateMembershipCommand): Promise<number> {
let insertid = -1;
let insertId = -1;
return await dataSource
.transaction(async (manager) => {
await manager
@ -20,7 +20,6 @@ export default abstract class MembershipCommandHandler {
.insert()
.into(membership)
.values({
internalId: createMembership.internalId,
start: createMembership.start,
member: await dataSource
.getRepository(member)
@ -35,7 +34,7 @@ export default abstract class MembershipCommandHandler {
})
.execute()
.then((result) => {
insertid = result.identifiers[0].id;
insertId = result.identifiers[0].id;
});
await manager
@ -43,14 +42,15 @@ export default abstract class MembershipCommandHandler {
.update(membership)
.set({
end: createMembership.start,
terminationReason: "beendet durch neuen Eintrag.",
})
.where("end IS NULL")
.andWhere("memberId = :memberId", { memberId: createMembership.memberId })
.andWhere("id <> :id", { id: insertid })
.andWhere("id <> :id", { id: insertId })
.execute();
})
.then(() => {
return insertid;
return insertId;
})
.catch((err) => {
throw new InternalException("Failed creating membership", err);
@ -59,7 +59,7 @@ export default abstract class MembershipCommandHandler {
/**
* @description update membership
* @param UpdateMembershipCommand
* @param {UpdateMembershipCommand} updateMembership
* @returns {Promise<void>}
*/
static async update(updateMembership: UpdateMembershipCommand): Promise<void> {
@ -67,7 +67,6 @@ export default abstract class MembershipCommandHandler {
.createQueryBuilder()
.update(membership)
.set({
internalId: updateMembership.internalId,
start: updateMembership.start,
end: updateMembership.end,
terminationReason: updateMembership.terminationReason,
@ -88,16 +87,16 @@ export default abstract class MembershipCommandHandler {
/**
* @description delete membership
* @param DeleteMembershipCommand
* @param {DeleteMembershipCommand} deleteMembership
* @returns {Promise<void>}
*/
static async delete(deletMembership: DeleteMembershipCommand): Promise<void> {
static async delete(deleteMembership: DeleteMembershipCommand): Promise<void> {
return await dataSource
.createQueryBuilder()
.delete()
.from(membership)
.where("id = :id", { id: deletMembership.id })
.andWhere("memberId = :memberId", { memberId: deletMembership.memberId })
.where("id = :id", { id: deleteMembership.id })
.andWhere("memberId = :memberId", { memberId: deleteMembership.memberId })
.execute()
.then(() => {})
.catch((err) => {