member routes and controller base

This commit is contained in:
Julian Krauser 2024-09-16 12:37:06 +02:00
parent 5fdfdcbd1f
commit 93e27ab440
15 changed files with 531 additions and 133 deletions

View file

@ -38,23 +38,4 @@ export default abstract class AwardService {
throw new InternalException("award not found by id", err);
});
}
/**
* @description get members assigned to award
* @returns {Promise<Array<member>>}
*/
static async getMembersByAwardId(id: number): Promise<Array<member>> {
return await dataSource
.getRepository(award)
.createQueryBuilder("award")
.leftJoinAndSelect("award.members", "members")
.where("award.id = :id", { id: id })
.getOneOrFail()
.then((res) => {
return [];
})
.catch((err) => {
throw new InternalException("award assigned members not found by id", err);
});
}
}

View file

@ -38,24 +38,4 @@ export default abstract class ExecutivePositionService {
throw new InternalException("executivePosition not found by id", err);
});
}
/**
* @description get members assigned to executivePosition
* @returns {Promise<Array<memberExecutivePositions>>}
*/
static async getMembersByexecutivePositionId(id: number): Promise<Array<memberExecutivePositions>> {
return await dataSource
.getRepository(executivePosition)
.createQueryBuilder("executivePosition")
.leftJoinAndSelect("executivePosition.members", "memberExecutivePositions")
.leftJoinAndSelect("memberExecutivePositions.member", "member")
.where("executivePosition.id = :id", { id: id })
.getOneOrFail()
.then((res) => {
return res.members;
})
.catch(() => {
throw new InternalException("executivePosition assigned members not found by id");
});
}
}

View file

@ -0,0 +1,41 @@
import { dataSource } from "../data-source";
import { member } from "../entity/member";
import InternalException from "../exceptions/internalException";
export default abstract class MemberService {
/**
* @description get all members
* @returns {Promise<Array<member>>}
*/
static async getAll(): Promise<Array<member>> {
return await dataSource
.getRepository(member)
.createQueryBuilder("member")
.getMany()
.then((res) => {
return res;
})
.catch((err) => {
throw new InternalException("members not found", err);
});
}
/**
* @description get member by id
* @param {number} id
* @returns {Promise<Array<member>>}
*/
static async getById(id: number): Promise<member> {
return await dataSource
.getRepository(member)
.createQueryBuilder("member")
.where("member.id = :id", { id: id })
.getOneOrFail()
.then((res) => {
return res;
})
.catch((err) => {
throw new InternalException("member not found by id", err);
});
}
}

View file

@ -38,27 +38,4 @@ export default abstract class MembershipStatusService {
throw new InternalException("membershipStatus not found by id", err);
});
}
/**
* @description get active memberships assigned to membershipStatus
* @returns {Promise<Array<membership>>}
*/
static async getMembersBymembershipStatusId(id: number): Promise<Array<membership>> {
return await dataSource
.getRepository(membershipStatus)
.createQueryBuilder("membershipStatus")
.leftJoinAndSelect("membershipStatus.memberships", "memberships")
.leftJoinAndSelect("memberships.member", "member")
.where("membershipStatus.id = :id", { id: id })
.andWhere("membership.start <= :start", { start: new Date() })
.andWhere("membership.end >= :end", { end: new Date() })
.orWhere("membership.end IS NULL")
.getOneOrFail()
.then((res) => {
return res.memberships;
})
.catch((err) => {
throw new InternalException("membershipStatus assigned members not found by id", err);
});
}
}

View file

@ -39,24 +39,4 @@ export default abstract class QualificationService {
throw new InternalException("qualification not found by id", err);
});
}
/**
* @description get members assigned to qualification
* @returns {Promise<Array<memberQualifications>>}
*/
static async getMembersByqualificationId(id: number): Promise<Array<memberQualifications>> {
return await dataSource
.getRepository(qualification)
.createQueryBuilder("qualification")
.leftJoinAndSelect("qualification.members", "memberQualifications")
.leftJoinAndSelect("memberQualifications.members", "members")
.where("qualification.id = :id", { id: id })
.getOneOrFail()
.then((res) => {
return res.members;
})
.catch((err) => {
throw new InternalException("qualification assigned members not found by id", err);
});
}
}