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} */ static async getSettings(): Promise { 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} */ static async getBySettingString(key: SettingString): Promise { 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); }); } }