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} */ 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); }); } }