fix: newsletter receiver backup and env Defaults

This commit is contained in:
Julian Krauser 2025-02-03 16:34:49 +01:00
parent c3e8b6b53b
commit 872e6ef9fe
5 changed files with 30 additions and 12 deletions

View file

@ -168,8 +168,9 @@ export default abstract class BackupHelper {
this.transactionManager = undefined;
})
.catch((err) => {
console.log(err);
this.transactionManager = undefined;
throw new DatabaseActionException("BACKUP RESTORE", include.join(", "), err);
throw new DatabaseActionException("BACKUP RESTORE", include.join(", ") || "FULL", err);
});
}
@ -331,6 +332,7 @@ export default abstract class BackupHelper {
"newsletter.isSent",
])
.addSelect(["dates.calendarId", "dates.diffTitle", "dates.diffDescription"])
.addSelect(["recipients.memberId"])
.addSelect([
...(collectIds ? ["member.id"] : []),
"member.firstname",
@ -340,7 +342,13 @@ export default abstract class BackupHelper {
"member.internalId",
])
.addSelect(["recipientsByQuery.title", "recipientsByQuery.query"])
.getMany();
.getMany()
.then((res: any) =>
res.map((n: any) => ({
...n,
recipients: n.recipients.map((r: any) => ({ ...r, ...(false ? {} : { memberId: undefined }) })),
}))
);
}
private static async getNewsletterConfig(): Promise<Array<any>> {
return await dataSource
@ -630,7 +638,10 @@ export default abstract class BackupHelper {
private static async setNewsletter(data: Array<any>, collectedIds: boolean): Promise<void> {
await this.setQueryStore(
uniqBy(
data.map((d) => d.recipientsByQueryId).map((d) => ({ ...d, id: undefined })),
data
.map((d) => d.recipientsByQuery)
.filter((q) => q != null)
.map((d) => ({ ...d, id: undefined })),
"query"
)
);
@ -639,10 +650,14 @@ export default abstract class BackupHelper {
let members = await this.transactionManager.getRepository("member").find();
let dataWithMappedIds = data.map((d) => ({
...d,
recipientsByQueryId: {
...d.recipientsByQueryId,
id: queries.find((s) => s.query == d.recipientsByQueryId.query)?.id ?? undefined,
},
...(d.recipientsByQuery != null
? {
recipientsByQuery: {
...d.recipientsByQuery,
id: queries.find((s) => s.title == d.recipientsByQuery.title)?.id ?? undefined,
},
}
: {}),
...(!collectedIds
? {
recipients: d.recipients.map((r: any) => ({
@ -687,7 +702,7 @@ export default abstract class BackupHelper {
await this.transactionManager
.createQueryBuilder()
.insert()
.into("award")
.into("calendar_type")
.values(uniqBy([...(data?.["calendar_type"] ?? []), ...usedTypes], "type"))
.orIgnore()
.execute();