check mail config on mail value change

This commit is contained in:
Julian Krauser 2025-04-30 11:38:04 +02:00
parent 5b3a72820a
commit 41cb4eb569
2 changed files with 57 additions and 3 deletions

View file

@ -1,6 +1,8 @@
import { Request, Response } from "express";
import SettingHelper from "../../../helpers/settingsHelper";
import { SettingString, SettingValueMapping } from "../../../type/settingTypes";
import MailHelper from "../../../helpers/mailHelper";
import InternalException from "../../../exceptions/internalException";
/**
* @description get All settings
@ -40,7 +42,15 @@ export async function setSetting(req: Request, res: Response): Promise<any> {
let setting = req.body.setting as SettingString;
let value = req.body.value as string;
SettingHelper.setSetting(setting, value);
await SettingHelper.checkMail([{ key: setting, value }]).catch((err) => {
if (err == "mail") {
throw new InternalException("Mail is not valid");
} else {
throw new InternalException("Config is not valid");
}
});
await SettingHelper.setSetting(setting, value);
res.sendStatus(204);
}
@ -54,8 +64,16 @@ export async function setSetting(req: Request, res: Response): Promise<any> {
export async function setSettings<K extends SettingString>(req: Request, res: Response): Promise<any> {
let setting = req.body as Array<{ key: K; value: SettingValueMapping[K] }>;
await SettingHelper.checkMail(setting).catch((err) => {
if (err == "mail") {
throw new InternalException("Mail is not valid");
} else {
throw new InternalException("Config is not valid");
}
});
for (let entry of setting) {
SettingHelper.setSetting(entry.key, entry.value);
await SettingHelper.setSetting(entry.key, entry.value);
}
res.sendStatus(204);
@ -92,7 +110,7 @@ export async function setImages(req: Request, res: Response): Promise<any> {
export async function resetSetting(req: Request, res: Response): Promise<any> {
let setting = req.params.setting as SettingString;
SettingHelper.resetSetting(setting);
await SettingHelper.resetSetting(setting);
res.sendStatus(204);
}