diff --git a/src/command/configuration/newsletterConfig/newsletterConfigCommand.ts b/src/command/configuration/newsletterConfig/newsletterConfigCommand.ts index f07de54..5573062 100644 --- a/src/command/configuration/newsletterConfig/newsletterConfigCommand.ts +++ b/src/command/configuration/newsletterConfig/newsletterConfigCommand.ts @@ -1,8 +1,8 @@ -import { NewsletterConfigType } from "../../../enums/newsletterConfigType"; +import { NewsletterConfigEnum } from "../../../enums/newsletterConfigEnum"; export interface SetNewsletterConfigCommand { comTypeId: number; - config: NewsletterConfigType; + config: NewsletterConfigEnum; } export interface DeleteNewsletterConfigCommand { diff --git a/src/entity/configuration/newsletterConfig.ts b/src/entity/configuration/newsletterConfig.ts index 17dde81..2d5d69c 100644 --- a/src/entity/configuration/newsletterConfig.ts +++ b/src/entity/configuration/newsletterConfig.ts @@ -1,5 +1,5 @@ import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm"; -import { NewsletterConfigType } from "../../enums/newsletterConfigType"; +import { NewsletterConfigEnum } from "../../enums/newsletterConfigEnum"; import { communicationType } from "./communicationType"; @Entity() @@ -11,15 +11,15 @@ export class newsletterConfig { type: "varchar", length: "255", transformer: { - to(value: NewsletterConfigType) { + to(value: NewsletterConfigEnum) { return value.toString(); }, from(value: string) { - return NewsletterConfigType[value as keyof typeof NewsletterConfigType]; + return NewsletterConfigEnum[value as keyof typeof NewsletterConfigEnum]; }, }, }) - config: NewsletterConfigType; + config: NewsletterConfigEnum; @ManyToOne(() => communicationType, { nullable: false, diff --git a/src/enums/newsletterConfigEnum.ts b/src/enums/newsletterConfigEnum.ts new file mode 100644 index 0000000..1e7313f --- /dev/null +++ b/src/enums/newsletterConfigEnum.ts @@ -0,0 +1,5 @@ +export enum NewsletterConfigEnum { + pdf = "pdf", + mail = "mail", + none = "none", +} diff --git a/src/enums/newsletterConfigType.ts b/src/enums/newsletterConfigType.ts deleted file mode 100644 index 4703494..0000000 --- a/src/enums/newsletterConfigType.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum NewsletterConfigType { - pdf = "pdf", - mail = "mail", -} diff --git a/src/helpers/newsletterHelper.ts b/src/helpers/newsletterHelper.ts index e84427f..32cdd16 100644 --- a/src/helpers/newsletterHelper.ts +++ b/src/helpers/newsletterHelper.ts @@ -14,7 +14,7 @@ import { CLUB_NAME } from "../env.defaults"; import { TemplateHelper } from "./templateHelper"; import { PdfExport } from "./pdfExport"; import NewsletterConfigService from "../service/configuration/newsletterConfigService"; -import { NewsletterConfigType } from "../enums/newsletterConfigType"; +import { NewsletterConfigEnum } from "../enums/newsletterConfigEnum"; import InternalException from "../exceptions/internalException"; import EventEmitter from "events"; @@ -145,7 +145,7 @@ export abstract class NewsletterHelper { return []; } else { let members = await MemberService.getAll({ noLimit: true, ids: queryMemberIds }); - return members[0]; + return members[0].filter((m) => m.sendNewsletter != null); } } @@ -154,14 +154,11 @@ export abstract class NewsletterHelper { let recipients = await NewsletterRecipientsService.getAll(newsletterId); let config = await NewsletterConfigService.getAll(); - let allowedForMail = config.filter((c) => c.config == NewsletterConfigType.mail).map((c) => c.comTypeId); + let allowedForMail = config.filter((c) => c.config == NewsletterConfigEnum.mail).map((c) => c.comTypeId); const members = await this.transformRecipientsToMembers(newsletter, recipients); const mailRecipients = members.filter( - (m) => - m.sendNewsletter != null && - m.sendNewsletter?.email != null && - allowedForMail.includes(m.sendNewsletter?.type?.id) + (m) => m.sendNewsletter?.email != "" && allowedForMail.includes(m.sendNewsletter?.type?.id) ); return mailRecipients; @@ -172,12 +169,12 @@ export abstract class NewsletterHelper { let recipients = await NewsletterRecipientsService.getAll(newsletterId); let config = await NewsletterConfigService.getAll(); - let notAllowedForPdf = config.filter((c) => c.config == NewsletterConfigType.mail).map((c) => c.comTypeId); + let notAllowedForPdf = config + .filter((c) => c.config == NewsletterConfigEnum.none || c.config == NewsletterConfigEnum.mail) + .map((c) => c.comTypeId); const members = await this.transformRecipientsToMembers(newsletter, recipients); - const pdfRecipients = members.filter( - (m) => !notAllowedForPdf.includes(m.sendNewsletter?.type?.id) || m.sendNewsletter == null - ); + const pdfRecipients = members.filter((m) => !notAllowedForPdf.includes(m.sendNewsletter?.type?.id)); pdfRecipients.unshift({ id: "0", @@ -278,7 +275,7 @@ export abstract class NewsletterHelper { if (error) throw new InternalException("Failed Building ICS form Pdf", error); this.saveIcsToFile(newsletter, value); - let printWithAdress = config.filter((c) => c.config == NewsletterConfigType.pdf).map((c) => c.comTypeId); + let printWithAdress = config.filter((c) => c.config == NewsletterConfigEnum.pdf).map((c) => c.comTypeId); const pdfRecipients = await this.getPrintRecipients(newsletterId); diff --git a/src/viewmodel/admin/configuration/newsletterConfig.models.ts b/src/viewmodel/admin/configuration/newsletterConfig.models.ts index 3538bfe..6bb2041 100644 --- a/src/viewmodel/admin/configuration/newsletterConfig.models.ts +++ b/src/viewmodel/admin/configuration/newsletterConfig.models.ts @@ -1,8 +1,8 @@ -import { NewsletterConfigType } from "../../../enums/newsletterConfigType"; +import { NewsletterConfigEnum } from "../../../enums/newsletterConfigEnum"; import { CommunicationTypeViewModel } from "./communicationType.models"; export interface NewsletterConfigViewModel { comTypeId: number; - config: NewsletterConfigType; + config: NewsletterConfigEnum; comType: CommunicationTypeViewModel; }