ff-admin-server/src/service/management/settingService.ts

43 lines
1.2 KiB
TypeScript

import { dataSource } from "../../data-source";
import { setting } from "../../entity/management/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);
});
}
}