split in env required and dynamic values

This commit is contained in:
Julian Krauser 2025-04-19 16:51:37 +02:00
parent f32143b7ac
commit 730c25a9a1
35 changed files with 491 additions and 198 deletions

View file

@ -1,11 +1,9 @@
import { Brackets, Like, 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";
import { SettingHelper } from "../../../helpers/settingsHelper";
import { DB_TYPE } from "../../../env.defaults";
export default abstract class MemberService {
/**
@ -169,7 +167,7 @@ export default abstract class MemberService {
"member.firstMembershipEntry",
"member.memberships",
"membership_first",
SettingHelper.getEnvSetting("database.type") == "postgres"
DB_TYPE == "postgres"
? 'membership_first.memberId = member.id AND membership_first.start = (SELECT MIN("m_first"."start") FROM "membership" "m_first" WHERE "m_first"."memberId" = "member"."id")'
: "membership_first.memberId = member.id AND membership_first.start = (SELECT MIN(m_first.start) FROM membership m_first WHERE m_first.memberId = member.id)"
)
@ -177,7 +175,7 @@ export default abstract class MemberService {
"member.lastMembershipEntry",
"member.memberships",
"membership_last",
SettingHelper.getEnvSetting("database.type") == "postgres"
DB_TYPE == "postgres"
? 'membership_last.memberId = member.id AND membership_last.start = (SELECT MAX("m_last"."start") FROM "membership" "m_last" WHERE "m_last"."memberId" = "member"."id")'
: "membership_last.memberId = member.id AND membership_last.start = (SELECT MAX(m_last.start) FROM membership m_last WHERE m_last.memberId = member.id)"
)

View file

@ -0,0 +1,43 @@
import { dataSource } from "../data-source";
import { setting } from "../entity/setting";
import InternalException from "../exceptions/internalException";
import { SettingString } from "../type/settingTypes";
export default abstract class SettingService {
/**
* @description get settings
* @returns {Promise<setting[]>}
*/
static async getSettings(): Promise<setting[]> {
return await dataSource
.getRepository(setting)
.createQueryBuilder("setting")
.getMany()
.then((res) => {
return res;
})
.catch((err) => {
throw new InternalException("setting not found", err);
});
}
/**
* @description get setting
* @param token SettingString
* @returns {Promise<setting>}
*/
static async getBySettingString(key: SettingString): Promise<setting> {
return await dataSource
.getRepository(setting)
.createQueryBuilder("setting")
.where("setting.topic = :topic", { topic: key.split(".")[0] })
.andWhere("setting.key >= :key", { key: key.split(".")[1] })
.getOneOrFail()
.then((res) => {
return res;
})
.catch((err) => {
throw new InternalException("setting not found", err);
});
}
}