Files
celestine/src/modules/data/setConfig.ts
2024-05-12 01:52:39 -07:00

41 lines
1.1 KiB
TypeScript

import { defaultConfig } from "../../config/DefaultConfig";
import { ExtendedClient } from "../../interfaces/ExtendedClient";
import { errorHandler } from "../../utils/errorHandler";
/**
* Module to update a config.
*
* @param {ExtendedClient} bot The bot's Discord instance.
* @param {string} serverId The ID of the server to update.
* @param {keyof ExtendedClient["config"]} setting The setting to update.
* @param {number | string} value The value to update the setting to.
* @returns {boolean} True on successful update.
*/
export const setConfig = async (
bot: ExtendedClient,
serverId: string,
setting: keyof ExtendedClient["configs"][""],
value: number | string
): Promise<boolean> => {
try {
const configData = await bot.db.configs.upsert({
where: {
serverId
},
create: {
...defaultConfig,
serverId,
[setting]: value
},
update: {
[setting]: value
}
});
bot.configs[serverId] = configData;
return true;
} catch (err) {
await errorHandler(bot, "set config", err);
return false;
}
};