update database error messages
This commit is contained in:
parent
f89483f878
commit
f245ff74a8
72 changed files with 325 additions and 441 deletions
|
@ -1,5 +1,6 @@
|
|||
import { dataSource } from "../../../data-source";
|
||||
import { communication } from "../../../entity/club/member/communication";
|
||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||
import InternalException from "../../../exceptions/internalException";
|
||||
|
||||
export default abstract class CommunicationService {
|
||||
|
@ -21,7 +22,7 @@ export default abstract class CommunicationService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member communications not found", err);
|
||||
throw new DatabaseActionException("SELECT", "memberCommunications", err);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -44,7 +45,7 @@ export default abstract class CommunicationService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member communication not found by id", err);
|
||||
throw new DatabaseActionException("SELECT", "memberCommunication", err);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { dataSource } from "../../../data-source";
|
||||
import { memberAwards } from "../../../entity/club/member/memberAwards";
|
||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||
import InternalException from "../../../exceptions/internalException";
|
||||
|
||||
export default abstract class MemberAwardService {
|
||||
|
@ -20,7 +21,7 @@ export default abstract class MemberAwardService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member awards not found", err);
|
||||
throw new DatabaseActionException("SELECT", "memberAwards", err);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -42,7 +43,7 @@ export default abstract class MemberAwardService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member award not found by id", err);
|
||||
throw new DatabaseActionException("SELECT", "memberAwards", err);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { dataSource } from "../../../data-source";
|
||||
import { memberExecutivePositions } from "../../../entity/club/member/memberExecutivePositions";
|
||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||
import InternalException from "../../../exceptions/internalException";
|
||||
|
||||
export default abstract class MemberExecutivePositionService {
|
||||
|
@ -21,7 +22,7 @@ export default abstract class MemberExecutivePositionService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member executivePositions not found", err);
|
||||
throw new DatabaseActionException("SELECT", "memberExecutivePositions", err);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -45,7 +46,7 @@ export default abstract class MemberExecutivePositionService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member executivePosition not found by id", err);
|
||||
throw new DatabaseActionException("SELECT", "memberExecutivePositions", err);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { dataSource } from "../../../data-source";
|
||||
import { memberQualifications } from "../../../entity/club/member/memberQualifications";
|
||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||
import InternalException from "../../../exceptions/internalException";
|
||||
|
||||
export default abstract class MemberQualificationService {
|
||||
|
@ -20,7 +21,7 @@ export default abstract class MemberQualificationService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member qualifications not found", err);
|
||||
throw new DatabaseActionException("SELECT", "memberQualifications", err);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -42,7 +43,7 @@ export default abstract class MemberQualificationService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member qualification not found by id", err);
|
||||
throw new DatabaseActionException("SELECT", "memberQualifications", err);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import { SelectQueryBuilder } from "typeorm";
|
||||
import { dataSource } from "../../../data-source";
|
||||
import { member } from "../../../entity/club/member/member";
|
||||
import { membership } from "../../../entity/club/member/membership";
|
||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||
import InternalException from "../../../exceptions/internalException";
|
||||
import { memberView } from "../../../views/memberView";
|
||||
|
||||
|
@ -22,40 +24,7 @@ export default abstract class MemberService {
|
|||
noLimit?: boolean;
|
||||
ids?: Array<string>;
|
||||
}): Promise<[Array<member>, number]> {
|
||||
let query = dataSource
|
||||
.getRepository(member)
|
||||
.createQueryBuilder("member")
|
||||
.leftJoinAndMapOne(
|
||||
"member.firstMembershipEntry",
|
||||
"member.memberships",
|
||||
"membership_first",
|
||||
"membership_first.memberId = member.id AND membership_first.start = (SELECT MIN(m.start) FROM membership m WHERE m.memberId = member.id)"
|
||||
)
|
||||
.leftJoinAndMapOne(
|
||||
"member.lastMembershipEntry",
|
||||
"member.memberships",
|
||||
"membership_last",
|
||||
"membership_last.memberId = member.id AND membership_last.start = (SELECT MAX(m.start) FROM membership m WHERE m.memberId = member.id)"
|
||||
)
|
||||
.leftJoinAndSelect("membership_first.status", "status_first")
|
||||
.leftJoinAndSelect("membership_last.status", "status_last")
|
||||
.leftJoinAndMapMany(
|
||||
"member.preferredCommunication",
|
||||
"member.communications",
|
||||
"preferredCommunication",
|
||||
"preferredCommunication.preferred = 1"
|
||||
)
|
||||
.leftJoinAndSelect("preferredCommunication.type", "communicationtype_preferred")
|
||||
.leftJoinAndMapOne(
|
||||
"member.sendNewsletter",
|
||||
"member.communications",
|
||||
"sendNewsletter",
|
||||
"sendNewsletter.isSendNewsletter = 1"
|
||||
)
|
||||
.leftJoinAndSelect("sendNewsletter.type", "communicationtype")
|
||||
.leftJoinAndMapMany("member.smsAlarming", "member.communications", "smsAlarming", "smsAlarming.isSMSAlarming = 1")
|
||||
.leftJoinAndSelect("smsAlarming.type", "communicationtype_smsAlarming")
|
||||
.leftJoinAndSelect("member.salutation", "salutation");
|
||||
let query = this.applyMemberBaseJoins();
|
||||
|
||||
if (search != "") {
|
||||
search.split(" ").forEach((term, index) => {
|
||||
|
@ -90,7 +59,7 @@ export default abstract class MemberService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("members not found", err);
|
||||
throw new DatabaseActionException("SELECT", "member", err);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -100,7 +69,89 @@ export default abstract class MemberService {
|
|||
* @returns {Promise<member>}
|
||||
*/
|
||||
static async getById(id: string): Promise<member> {
|
||||
return this.applyMemberBaseJoins()
|
||||
.where("member.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new DatabaseActionException("SELECT", "member", err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get member statistics by id
|
||||
* @param {string} id
|
||||
* @returns {Promise<memberView>}
|
||||
*/
|
||||
static async getStatisticsById(id: string): Promise<memberView> {
|
||||
return await dataSource
|
||||
.getRepository(memberView)
|
||||
.createQueryBuilder("memberView")
|
||||
.where("memberView.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new DatabaseActionException("SELECT", "memberView", err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get members where membership is setz
|
||||
* @returns {Promise<member>}
|
||||
*/
|
||||
static async getByRunningMembership(): Promise<Array<member>> {
|
||||
return await dataSource
|
||||
.getRepository(member)
|
||||
.createQueryBuilder("member")
|
||||
.leftJoinAndSelect("member.memberships", "membership")
|
||||
.where("membership.end IS NULL")
|
||||
.orderBy("member.lastname")
|
||||
.addOrderBy("member.firstname")
|
||||
.addOrderBy("member.nameaffix")
|
||||
.getMany()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new DatabaseActionException("SELECT", "member", err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get newsletter by member by id
|
||||
* @param {string} id
|
||||
* @returns {Promise<member>}
|
||||
*/
|
||||
static async getNewsletterById(id: string): Promise<member> {
|
||||
return await dataSource
|
||||
.getRepository(member)
|
||||
.createQueryBuilder("member")
|
||||
.leftJoinAndMapOne(
|
||||
"member.sendNewsletter",
|
||||
"member.communications",
|
||||
"sendNewsletter",
|
||||
"sendNewsletter.isSendNewsletter = 1"
|
||||
)
|
||||
.where("member.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new DatabaseActionException("SELECT", "member", err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description apply member joins to query
|
||||
* @returns {SelectQueryBuilder<member>}
|
||||
*/
|
||||
static applyMemberBaseJoins(): SelectQueryBuilder<member> {
|
||||
return dataSource
|
||||
.getRepository(member)
|
||||
.createQueryBuilder("member")
|
||||
.leftJoinAndMapOne(
|
||||
|
@ -133,80 +184,6 @@ export default abstract class MemberService {
|
|||
.leftJoinAndSelect("sendNewsletter.type", "communicationtype")
|
||||
.leftJoinAndMapMany("member.smsAlarming", "member.communications", "smsAlarming", "smsAlarming.isSMSAlarming = 1")
|
||||
.leftJoinAndSelect("smsAlarming.type", "communicationtype_smsAlarming")
|
||||
.leftJoinAndSelect("member.salutation", "salutation")
|
||||
.where("member.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member not found by id", err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get member statistics by id
|
||||
* @param {string} id
|
||||
* @returns {Promise<memberView>}
|
||||
*/
|
||||
static async getStatisticsById(id: string): 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>}
|
||||
*/
|
||||
static async getByRunningMembership(): Promise<Array<member>> {
|
||||
return await dataSource
|
||||
.getRepository(member)
|
||||
.createQueryBuilder("member")
|
||||
.leftJoinAndSelect("member.memberships", "membership")
|
||||
.where("membership.end IS NULL")
|
||||
.orderBy("member.lastname")
|
||||
.addOrderBy("member.firstname")
|
||||
.addOrderBy("member.nameaffix")
|
||||
.getMany()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member not found by id", err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get newsletter by member by id
|
||||
* @param {string} id
|
||||
* @returns {Promise<member>}
|
||||
*/
|
||||
static async getNewsletterById(id: string): Promise<member> {
|
||||
return await dataSource
|
||||
.getRepository(member)
|
||||
.createQueryBuilder("member")
|
||||
.leftJoinAndMapOne(
|
||||
"member.sendNewsletter",
|
||||
"member.communications",
|
||||
"sendNewsletter",
|
||||
"sendNewsletter.isSendNewsletter = 1"
|
||||
)
|
||||
.where("member.id = :id", { id: id })
|
||||
.getOneOrFail()
|
||||
.then((res) => {
|
||||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member not found by id", err);
|
||||
});
|
||||
.leftJoinAndSelect("member.salutation", "salutation");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { dataSource } from "../../../data-source";
|
||||
import { membership } from "../../../entity/club/member/membership";
|
||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||
import InternalException from "../../../exceptions/internalException";
|
||||
import { membershipView } from "../../../views/membershipsView";
|
||||
|
||||
|
@ -21,7 +22,7 @@ export default abstract class MembershipService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member memberships not found", err);
|
||||
throw new DatabaseActionException("SELECT", "membershis", err);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -43,7 +44,7 @@ export default abstract class MembershipService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("member membership not found by id", err);
|
||||
throw new DatabaseActionException("SELECT", "membership", err);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -62,7 +63,7 @@ export default abstract class MembershipService {
|
|||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new InternalException("membershipView not found by id", err);
|
||||
throw new DatabaseActionException("SELECT", "membershipView", err);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue