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

@ -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);
});
}
}