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"
|
| "query"
|
||||||
| "template"
|
| "template"
|
||||||
| "user"
|
| "user"
|
||||||
| "webapi";
|
| "webapi"
|
||||||
|
| "settings";
|
||||||
|
|
||||||
export type BackupSectionRefered = {
|
export type BackupSectionRefered = {
|
||||||
[key in BackupSection]?: Array<string>;
|
[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: "template", orderOnInsert: 2, orderOnClear: 1 }, // INSERT depends on member com
|
||||||
{ type: "user", orderOnInsert: 1, orderOnClear: 1 },
|
{ type: "user", orderOnInsert: 1, orderOnClear: 1 },
|
||||||
{ type: "webapi", orderOnInsert: 1, orderOnClear: 1 },
|
{ type: "webapi", orderOnInsert: 1, orderOnClear: 1 },
|
||||||
|
{ type: "settings", orderOnInsert: 1, orderOnClear: 1 },
|
||||||
];
|
];
|
||||||
|
|
||||||
private static readonly backupSectionRefered: BackupSectionRefered = {
|
private static readonly backupSectionRefered: BackupSectionRefered = {
|
||||||
|
@ -76,6 +78,7 @@ export default abstract class BackupHelper {
|
||||||
template: ["template", "template_usage"],
|
template: ["template", "template_usage"],
|
||||||
user: ["user", "user_permission", "role", "role_permission", "invite"],
|
user: ["user", "user_permission", "role", "role_permission", "invite"],
|
||||||
webapi: ["webapi", "webapi_permission"],
|
webapi: ["webapi", "webapi_permission"],
|
||||||
|
settings: ["setting"],
|
||||||
};
|
};
|
||||||
|
|
||||||
private static transactionManager: EntityManager;
|
private static transactionManager: EntityManager;
|
||||||
|
@ -220,6 +223,8 @@ export default abstract class BackupHelper {
|
||||||
return await this.getUser(collectIds);
|
return await this.getUser(collectIds);
|
||||||
case "webapi":
|
case "webapi":
|
||||||
return await this.getWebapi();
|
return await this.getWebapi();
|
||||||
|
case "settings":
|
||||||
|
return await this.getSettings();
|
||||||
default:
|
default:
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
@ -460,6 +465,13 @@ export default abstract class BackupHelper {
|
||||||
.addSelect(["permissions.permission"])
|
.addSelect(["permissions.permission"])
|
||||||
.getMany();
|
.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(
|
private static async setSectionData(
|
||||||
section: BackupSection,
|
section: BackupSection,
|
||||||
|
@ -476,6 +488,7 @@ export default abstract class BackupHelper {
|
||||||
if (section == "template" && !Array.isArray(data)) await this.setTemplate(data);
|
if (section == "template" && !Array.isArray(data)) await this.setTemplate(data);
|
||||||
if (section == "user" && !Array.isArray(data)) await this.setUser(data);
|
if (section == "user" && !Array.isArray(data)) await this.setUser(data);
|
||||||
if (section == "webapi" && Array.isArray(data)) await this.setWebapi(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> {
|
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> {
|
private static async setWebapi(data: Array<any>): Promise<void> {
|
||||||
await this.transactionManager.getRepository("webapi").save(data);
|
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 BackupHelper from "./helpers/backupHelper";
|
||||||
import SettingHelper from "./helpers/settingsHelper";
|
import SettingHelper from "./helpers/settingsHelper";
|
||||||
dataSource.initialize().then(async () => {
|
dataSource.initialize().then(async () => {
|
||||||
if (false && (await dataSource.createQueryRunner().hasTable("user"))) {
|
if (await dataSource.createQueryRunner().hasTable("user")) {
|
||||||
await BackupHelper.autoRestoreBackup().catch((err) => {
|
await BackupHelper.autoRestoreBackup().catch((err) => {
|
||||||
console.log(`${new Date().toISOString()}: failed auto-restoring database`, 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);
|
await setAppIdentity(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post("/mail", async (req, res) => {
|
router.post(
|
||||||
await setMailConfig(req, res);
|
"/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) => {
|
router.post("/verify", ParamaterPassCheckHelper.requiredIncludedMiddleware(["mail", "token"]), async (req, res) => {
|
||||||
await verifyInvite(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;
|
export default router;
|
||||||
|
|
Loading…
Add table
Reference in a new issue