member and membership statistics

This commit is contained in:
Julian Krauser 2025-01-21 14:49:14 +01:00
parent 0bbe22e9ae
commit 07d31bfe7d
10 changed files with 183 additions and 36 deletions

View file

@ -2,6 +2,7 @@ import { dataSource } from "../../../data-source";
import { member } from "../../../entity/club/member/member";
import { membership } from "../../../entity/club/member/membership";
import InternalException from "../../../exceptions/internalException";
import { memberView } from "../../../views/memberView";
export default abstract class MemberService {
/**
@ -132,6 +133,25 @@ export default abstract class MemberService {
});
}
/**
* @description get member statistics by id
* @param {number} id
* @returns {Promise<memberView>}
*/
static async getStatisticsById(id: number): Promise<memberView> {
return await dataSource
.getRepository(memberView)
.createQueryBuilder("memberView")
.where("memberView.id = :id", { id: id })
.getOneOrFail()
.then((res) => {
return res;
})
.catch((err) => {
throw new InternalException("memberView not found by id", err);
});
}
/**
* @description get members where membership is setz
* @returns {Promise<member>}

View file

@ -1,6 +1,7 @@
import { dataSource } from "../../../data-source";
import { membership } from "../../../entity/club/member/membership";
import InternalException from "../../../exceptions/internalException";
import { membershipView } from "../../../views/membershipsView";
export default abstract class MembershipService {
/**
@ -45,4 +46,23 @@ export default abstract class MembershipService {
throw new InternalException("member membership not found by id", err);
});
}
/**
* @description get membership statistics by memberId
* @param {number} memberId
* @returns {Promise<membershipView>}
*/
static async getStatisticsById(memberId: number): Promise<membershipView> {
return await dataSource
.getRepository(membershipView)
.createQueryBuilder("membershipView")
.where("membershipView.memberId = :memberId", { memberId: memberId })
.getOneOrFail()
.then((res) => {
return res;
})
.catch((err) => {
throw new InternalException("membershipView not found by id", err);
});
}
}