add settings to backup
This commit is contained in:
parent
ce9f621b8b
commit
99eafcb352
3 changed files with 25 additions and 11 deletions
|
@ -18,7 +18,8 @@ export type BackupSection =
|
|||
| "query"
|
||||
| "template"
|
||||
| "user"
|
||||
| "webapi";
|
||||
| "webapi"
|
||||
| "settings";
|
||||
|
||||
export type BackupSectionRefered = {
|
||||
[key in BackupSection]?: Array<string>;
|
||||
|
@ -42,6 +43,7 @@ export default abstract class BackupHelper {
|
|||
{ type: "template", orderOnInsert: 2, orderOnClear: 1 }, // INSERT depends on member com
|
||||
{ type: "user", orderOnInsert: 1, orderOnClear: 1 },
|
||||
{ type: "webapi", orderOnInsert: 1, orderOnClear: 1 },
|
||||
{ type: "settings", orderOnInsert: 1, orderOnClear: 1 },
|
||||
];
|
||||
|
||||
private static readonly backupSectionRefered: BackupSectionRefered = {
|
||||
|
@ -76,6 +78,7 @@ export default abstract class BackupHelper {
|
|||
template: ["template", "template_usage"],
|
||||
user: ["user", "user_permission", "role", "role_permission", "invite"],
|
||||
webapi: ["webapi", "webapi_permission"],
|
||||
settings: ["setting"],
|
||||
};
|
||||
|
||||
private static transactionManager: EntityManager;
|
||||
|
@ -220,6 +223,8 @@ export default abstract class BackupHelper {
|
|||
return await this.getUser(collectIds);
|
||||
case "webapi":
|
||||
return await this.getWebapi();
|
||||
case "settings":
|
||||
return await this.getSettings();
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
|
@ -460,6 +465,13 @@ export default abstract class BackupHelper {
|
|||
.addSelect(["permissions.permission"])
|
||||
.getMany();
|
||||
}
|
||||
private static async getSettings(): Promise<Array<any>> {
|
||||
return await dataSource
|
||||
.getRepository("setting")
|
||||
.createQueryBuilder("setting")
|
||||
.select(["setting.topic", "setting.key", "setting.value"])
|
||||
.getMany();
|
||||
}
|
||||
|
||||
private static async setSectionData(
|
||||
section: BackupSection,
|
||||
|
@ -476,6 +488,7 @@ export default abstract class BackupHelper {
|
|||
if (section == "template" && !Array.isArray(data)) await this.setTemplate(data);
|
||||
if (section == "user" && !Array.isArray(data)) await this.setUser(data);
|
||||
if (section == "webapi" && Array.isArray(data)) await this.setWebapi(data);
|
||||
if (section == "settings" && Array.isArray(data)) await this.setSettings(data);
|
||||
}
|
||||
|
||||
private static async setMemberData(data: Array<any>): Promise<void> {
|
||||
|
@ -810,4 +823,7 @@ export default abstract class BackupHelper {
|
|||
private static async setWebapi(data: Array<any>): Promise<void> {
|
||||
await this.transactionManager.getRepository("webapi").save(data);
|
||||
}
|
||||
private static async setSettings(data: Array<any>): Promise<void> {
|
||||
await this.transactionManager.getRepository("setting").save(data);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ import { dataSource } from "./data-source";
|
|||
import BackupHelper from "./helpers/backupHelper";
|
||||
import SettingHelper from "./helpers/settingsHelper";
|
||||
dataSource.initialize().then(async () => {
|
||||
if (false && (await dataSource.createQueryRunner().hasTable("user"))) {
|
||||
if (await dataSource.createQueryRunner().hasTable("user")) {
|
||||
await BackupHelper.autoRestoreBackup().catch((err) => {
|
||||
console.log(`${new Date().toISOString()}: failed auto-restoring database`, err);
|
||||
});
|
||||
|
|
|
@ -28,9 +28,13 @@ router.post("/app", async (req, res) => {
|
|||
await setAppIdentity(req, res);
|
||||
});
|
||||
|
||||
router.post("/mail", async (req, res) => {
|
||||
await setMailConfig(req, res);
|
||||
});
|
||||
router.post(
|
||||
"/mail",
|
||||
ParamaterPassCheckHelper.requiredIncludedMiddleware(["mail", "username", "password", "host", "port", "secure"]),
|
||||
async (req, res) => {
|
||||
await setMailConfig(req, res);
|
||||
}
|
||||
);
|
||||
|
||||
router.post("/verify", ParamaterPassCheckHelper.requiredIncludedMiddleware(["mail", "token"]), async (req, res) => {
|
||||
await verifyInvite(req, res);
|
||||
|
@ -52,10 +56,4 @@ router.post(
|
|||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* TODO:
|
||||
* set basic settings like clubname ...
|
||||
* enable upload of images and icons: transform pwa-> 512x512 png / 48x48 ico
|
||||
*/
|
||||
|
||||
export default router;
|
||||
|
|
Loading…
Add table
Reference in a new issue