bulk setting change and image update
This commit is contained in:
parent
964af82904
commit
be52a51055
3 changed files with 64 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
||||||
import { Request, Response } from "express";
|
import { Request, Response } from "express";
|
||||||
import SettingHelper from "../../../helpers/settingsHelper";
|
import SettingHelper from "../../../helpers/settingsHelper";
|
||||||
import { SettingString } from "../../../type/settingTypes";
|
import { SettingString, SettingValueMapping } from "../../../type/settingTypes";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description get All settings
|
* @description get All settings
|
||||||
|
@ -45,6 +45,44 @@ export async function setSetting(req: Request, res: Response): Promise<any> {
|
||||||
res.sendStatus(204);
|
res.sendStatus(204);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description set settings
|
||||||
|
* @param req {Request} Express req object
|
||||||
|
* @param res {Response} Express res object
|
||||||
|
* @returns {Promise<*>}
|
||||||
|
*/
|
||||||
|
export async function setSettings<K extends SettingString>(req: Request, res: Response): Promise<any> {
|
||||||
|
let setting = req.body as Array<{ key: K; value: SettingValueMapping[K] }>;
|
||||||
|
|
||||||
|
for (let entry of setting) {
|
||||||
|
SettingHelper.setSetting(entry.key, entry.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
res.sendStatus(204);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description set setting
|
||||||
|
* @param req {Request} Express req object
|
||||||
|
* @param res {Response} Express res object
|
||||||
|
* @returns {Promise<*>}
|
||||||
|
*/
|
||||||
|
export async function setImages(req: Request, res: Response): Promise<any> {
|
||||||
|
if (req.files && !Array.isArray(req.files) && req.files.icon) {
|
||||||
|
await SettingHelper.setSetting("club.icon", "configured");
|
||||||
|
} else {
|
||||||
|
await SettingHelper.resetSetting("club.icon");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (req.files && !Array.isArray(req.files) && req.files.logo) {
|
||||||
|
await SettingHelper.setSetting("club.logo", "configured");
|
||||||
|
} else {
|
||||||
|
await SettingHelper.resetSetting("club.logo");
|
||||||
|
}
|
||||||
|
|
||||||
|
res.sendStatus(204);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description reset setting
|
* @description reset setting
|
||||||
* @param req {Request} Express req object
|
* @param req {Request} Express req object
|
||||||
|
|
|
@ -68,11 +68,15 @@ export default abstract class SettingHelper {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a setting
|
* Sets a setting
|
||||||
|
* undefined value leads to reset of key
|
||||||
* @param key The key of the setting
|
* @param key The key of the setting
|
||||||
* @param value The value to set
|
* @param value The value to set
|
||||||
*/
|
*/
|
||||||
public static async setSetting<K extends SettingString>(key: K, value: SettingValueMapping[K]): Promise<void> {
|
public static async setSetting<K extends SettingString>(key: K, value: SettingValueMapping[K]): Promise<void> {
|
||||||
if (value === undefined || value === null) return;
|
if (value === undefined || value === null) {
|
||||||
|
if (key != "mail.password") this.resetSetting(key);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const stringValue = String(value);
|
const stringValue = String(value);
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,11 @@ import {
|
||||||
getSetting,
|
getSetting,
|
||||||
getSettings,
|
getSettings,
|
||||||
resetSetting,
|
resetSetting,
|
||||||
|
setImages,
|
||||||
setSetting,
|
setSetting,
|
||||||
|
setSettings,
|
||||||
} from "../../../controller/admin/management/settingController";
|
} from "../../../controller/admin/management/settingController";
|
||||||
|
import { clubImageUpload } from "../../../middleware/multer";
|
||||||
|
|
||||||
var router = express.Router({ mergeParams: true });
|
var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
|
@ -25,6 +28,23 @@ router.put(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
router.put(
|
||||||
|
"/multi",
|
||||||
|
PermissionHelper.passCheckMiddleware("create", "management", "setting"),
|
||||||
|
async (req: Request, res: Response) => {
|
||||||
|
await setSettings(req, res);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
router.put(
|
||||||
|
"/images",
|
||||||
|
PermissionHelper.passCheckMiddleware("create", "management", "setting"),
|
||||||
|
clubImageUpload,
|
||||||
|
async (req: Request, res: Response) => {
|
||||||
|
await setImages(req, res);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
router.delete(
|
router.delete(
|
||||||
"/:setting",
|
"/:setting",
|
||||||
PermissionHelper.passCheckMiddleware("delete", "management", "setting"),
|
PermissionHelper.passCheckMiddleware("delete", "management", "setting"),
|
||||||
|
|
Loading…
Add table
Reference in a new issue