sms alarming flag

This commit is contained in:
Julian Krauser 2024-11-27 10:07:59 +01:00
parent 1d73a15227
commit 5c68f0c54f
14 changed files with 90 additions and 3 deletions

View file

@ -56,6 +56,6 @@ export default abstract class CommunicationService {
static getAvailableColumnsForCommunication(): Array<string> {
let metadata = dataSource.getMetadata(communication);
let columns = metadata.columns.map((c) => c.propertyName);
return columns.filter((c) => !["id", "preferred", "type", "member"].includes(c));
return columns.filter((c) => !["id", "preferred", "isSMSAlarming", "type", "member"].includes(c));
}
}

View file

@ -35,6 +35,8 @@ export default abstract class MemberService {
"preferredCommunication.preferred = 1"
)
.leftJoinAndSelect("preferredCommunication.type", "communicationtype_preferred")
.leftJoinAndMapMany("member.smsAlarming", "member.communications", "smsAlarming", "smsAlarming.isSMSAlarming = 1")
.leftJoinAndSelect("smsAlarming.type", "communicationtype_smsAlarming")
.offset(offset)
.limit(count)
.orderBy("member.lastname")
@ -52,7 +54,7 @@ export default abstract class MemberService {
/**
* @description get member by id
* @param {number} id
* @returns {Promise<Array<member>>}
* @returns {Promise<member>}
*/
static async getById(id: number): Promise<member> {
return await dataSource
@ -80,6 +82,9 @@ export default abstract class MemberService {
"preferredCommunication",
"preferredCommunication.preferred = 1"
)
.leftJoinAndMapMany("member.smsAlarming", "member.communications", "smsAlarming", "smsAlarming.isSMSAlarming = 1")
.leftJoinAndSelect("smsAlarming.type", "communicationtype_smsAlarming")
.leftJoinAndSelect("preferredCommunication.type", "communicationtype_preferred")
.where("member.id = :id", { id: id })
.getOneOrFail()
@ -90,4 +95,24 @@ export default abstract class MemberService {
throw new InternalException("member not found by id", err);
});
}
/**
* @description get newsletter by member by id
* @param {number} id
* @returns {Promise<member>}
*/
static async getNewsletterById(id: number): Promise<member> {
return await dataSource
.getRepository(member)
.createQueryBuilder("member")
.leftJoinAndSelect("member.sendNewsletter", "sendNewsletter")
.where("member.id = :id", { id: id })
.getOneOrFail()
.then((res) => {
return res;
})
.catch((err) => {
throw new InternalException("member not found by id", err);
});
}
}