Compare commits
4 commits
Author | SHA1 | Date | |
---|---|---|---|
a827185bf1 | |||
f850fc2526 | |||
f1395357c5 | |||
63f206cc6a |
10 changed files with 25 additions and 31 deletions
4
package-lock.json
generated
4
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "ff-admin-server",
|
"name": "ff-admin-server",
|
||||||
"version": "1.4.2",
|
"version": "1.4.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ff-admin-server",
|
"name": "ff-admin-server",
|
||||||
"version": "1.4.2",
|
"version": "1.4.1",
|
||||||
"license": "AGPL-3.0-only",
|
"license": "AGPL-3.0-only",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "ff-admin-server",
|
"name": "ff-admin-server",
|
||||||
"version": "1.4.2",
|
"version": "1.4.1",
|
||||||
"description": "Feuerwehr/Verein Mitgliederverwaltung Server",
|
"description": "Feuerwehr/Verein Mitgliederverwaltung Server",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { NewsletterConfigType } from "../../../enums/newsletterConfigType";
|
import { NewsletterConfigEnum } from "../../../enums/newsletterConfigEnum";
|
||||||
|
|
||||||
export interface SetNewsletterConfigCommand {
|
export interface SetNewsletterConfigCommand {
|
||||||
comTypeId: number;
|
comTypeId: number;
|
||||||
config: NewsletterConfigType;
|
config: NewsletterConfigEnum;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface DeleteNewsletterConfigCommand {
|
export interface DeleteNewsletterConfigCommand {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||||
import { NewsletterConfigType } from "../../enums/newsletterConfigType";
|
import { NewsletterConfigEnum } from "../../enums/newsletterConfigEnum";
|
||||||
import { communicationType } from "./communicationType";
|
import { communicationType } from "./communicationType";
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
|
@ -11,15 +11,15 @@ export class newsletterConfig {
|
||||||
type: "varchar",
|
type: "varchar",
|
||||||
length: "255",
|
length: "255",
|
||||||
transformer: {
|
transformer: {
|
||||||
to(value: NewsletterConfigType) {
|
to(value: NewsletterConfigEnum) {
|
||||||
return value.toString();
|
return value.toString();
|
||||||
},
|
},
|
||||||
from(value: string) {
|
from(value: string) {
|
||||||
return NewsletterConfigType[value as keyof typeof NewsletterConfigType];
|
return NewsletterConfigEnum[value as keyof typeof NewsletterConfigEnum];
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
config: NewsletterConfigType;
|
config: NewsletterConfigEnum;
|
||||||
|
|
||||||
@ManyToOne(() => communicationType, {
|
@ManyToOne(() => communicationType, {
|
||||||
nullable: false,
|
nullable: false,
|
||||||
|
|
5
src/enums/newsletterConfigEnum.ts
Normal file
5
src/enums/newsletterConfigEnum.ts
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
export enum NewsletterConfigEnum {
|
||||||
|
pdf = "pdf",
|
||||||
|
mail = "mail",
|
||||||
|
none = "none",
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
export enum NewsletterConfigType {
|
|
||||||
pdf = "pdf",
|
|
||||||
mail = "mail",
|
|
||||||
}
|
|
|
@ -18,7 +18,6 @@ export default abstract class NewsletterFactory {
|
||||||
newsletterSignatur: record.newsletterSignatur,
|
newsletterSignatur: record.newsletterSignatur,
|
||||||
isSent: record.isSent,
|
isSent: record.isSent,
|
||||||
recipientsByQueryId: record?.recipientsByQuery ? record.recipientsByQuery.id : null,
|
recipientsByQueryId: record?.recipientsByQuery ? record.recipientsByQuery.id : null,
|
||||||
recipientsByQuery: record?.recipientsByQuery ? QueryStoreFactory.mapToSingle(record.recipientsByQuery) : null,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ import { CLUB_NAME } from "../env.defaults";
|
||||||
import { TemplateHelper } from "./templateHelper";
|
import { TemplateHelper } from "./templateHelper";
|
||||||
import { PdfExport } from "./pdfExport";
|
import { PdfExport } from "./pdfExport";
|
||||||
import NewsletterConfigService from "../service/configuration/newsletterConfigService";
|
import NewsletterConfigService from "../service/configuration/newsletterConfigService";
|
||||||
import { NewsletterConfigType } from "../enums/newsletterConfigType";
|
import { NewsletterConfigEnum } from "../enums/newsletterConfigEnum";
|
||||||
import InternalException from "../exceptions/internalException";
|
import InternalException from "../exceptions/internalException";
|
||||||
import EventEmitter from "events";
|
import EventEmitter from "events";
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ export abstract class NewsletterHelper {
|
||||||
return [];
|
return [];
|
||||||
} else {
|
} else {
|
||||||
let members = await MemberService.getAll({ noLimit: true, ids: queryMemberIds });
|
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 recipients = await NewsletterRecipientsService.getAll(newsletterId);
|
||||||
let config = await NewsletterConfigService.getAll();
|
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 members = await this.transformRecipientsToMembers(newsletter, recipients);
|
||||||
const mailRecipients = members.filter(
|
const mailRecipients = members.filter(
|
||||||
(m) =>
|
(m) => m.sendNewsletter?.email != "" && allowedForMail.includes(m.sendNewsletter?.type?.id)
|
||||||
m.sendNewsletter != null &&
|
|
||||||
m.sendNewsletter?.email != null &&
|
|
||||||
allowedForMail.includes(m.sendNewsletter?.type?.id)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return mailRecipients;
|
return mailRecipients;
|
||||||
|
@ -172,12 +169,12 @@ export abstract class NewsletterHelper {
|
||||||
let recipients = await NewsletterRecipientsService.getAll(newsletterId);
|
let recipients = await NewsletterRecipientsService.getAll(newsletterId);
|
||||||
let config = await NewsletterConfigService.getAll();
|
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 members = await this.transformRecipientsToMembers(newsletter, recipients);
|
||||||
const pdfRecipients = members.filter(
|
const pdfRecipients = members.filter((m) => !notAllowedForPdf.includes(m.sendNewsletter?.type?.id));
|
||||||
(m) => !notAllowedForPdf.includes(m.sendNewsletter?.type?.id) || m.sendNewsletter == null
|
|
||||||
);
|
|
||||||
|
|
||||||
pdfRecipients.unshift({
|
pdfRecipients.unshift({
|
||||||
id: "0",
|
id: "0",
|
||||||
|
@ -278,7 +275,7 @@ export abstract class NewsletterHelper {
|
||||||
if (error) throw new InternalException("Failed Building ICS form Pdf", error);
|
if (error) throw new InternalException("Failed Building ICS form Pdf", error);
|
||||||
this.saveIcsToFile(newsletter, value);
|
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);
|
const pdfRecipients = await this.getPrintRecipients(newsletterId);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import { QueryStoreViewModel } from "../../configuration/queryStore.models";
|
|
||||||
|
|
||||||
export interface NewsletterViewModel {
|
export interface NewsletterViewModel {
|
||||||
id: number;
|
id: number;
|
||||||
title: string;
|
title: string;
|
||||||
|
@ -9,5 +7,4 @@ export interface NewsletterViewModel {
|
||||||
newsletterSignatur: string;
|
newsletterSignatur: string;
|
||||||
isSent: boolean;
|
isSent: boolean;
|
||||||
recipientsByQueryId?: string;
|
recipientsByQueryId?: string;
|
||||||
recipientsByQuery?: QueryStoreViewModel;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { NewsletterConfigType } from "../../../enums/newsletterConfigType";
|
import { NewsletterConfigEnum } from "../../../enums/newsletterConfigEnum";
|
||||||
import { CommunicationTypeViewModel } from "./communicationType.models";
|
import { CommunicationTypeViewModel } from "./communicationType.models";
|
||||||
|
|
||||||
export interface NewsletterConfigViewModel {
|
export interface NewsletterConfigViewModel {
|
||||||
comTypeId: number;
|
comTypeId: number;
|
||||||
config: NewsletterConfigType;
|
config: NewsletterConfigEnum;
|
||||||
comType: CommunicationTypeViewModel;
|
comType: CommunicationTypeViewModel;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue