print pdfs and send mails with ics file
This commit is contained in:
parent
5f827fb177
commit
728c4e05fa
12 changed files with 461 additions and 183 deletions
|
@ -17,6 +17,8 @@ import { PdfExport } from "../../helpers/pdfExport";
|
|||
import UserService from "../../service/userService";
|
||||
import { TemplateHelper } from "../../helpers/templateHelper";
|
||||
import MailHelper from "../../helpers/mailHelper";
|
||||
import { NewsletterHelper } from "../../helpers/newsletterHelper";
|
||||
import { Salutation } from "../../enums/salutation";
|
||||
|
||||
/**
|
||||
* @description get all newsletters
|
||||
|
@ -89,8 +91,9 @@ export async function getNewsletterPrintoutsById(req: Request, res: Response): P
|
|||
|
||||
let newsletter = await NewsletterService.getById(newsletterId);
|
||||
|
||||
let folderPath = FileSystemHelper.formatPath("export", "newsletter", `${newsletter.id}_${newsletter.title}`);
|
||||
let filesInFolder = FileSystemHelper.getFilesInDirectory(folderPath);
|
||||
let filesInFolder = FileSystemHelper.getFilesInDirectory(
|
||||
`newsletter/${newsletter.id}_${newsletter.title.replace(" ", "")}`
|
||||
);
|
||||
|
||||
res.json(filesInFolder);
|
||||
}
|
||||
|
@ -107,9 +110,13 @@ export async function getNewsletterPrintoutByIdAndPrint(req: Request, res: Respo
|
|||
|
||||
let newsletter = await NewsletterService.getById(newsletterId);
|
||||
|
||||
let filepath = FileSystemHelper.formatPath("export", "newsletter", `${newsletter.id}_${newsletter.title}`, filename);
|
||||
let filepath = FileSystemHelper.formatPath(
|
||||
"newsletter",
|
||||
`${newsletter.id}_${newsletter.title.replace(" ", "")}`,
|
||||
filename
|
||||
);
|
||||
|
||||
res.sendFile(process.cwd() + filepath, {
|
||||
res.sendFile(filepath, {
|
||||
headers: {
|
||||
"Content-Type": "application/pdf",
|
||||
},
|
||||
|
@ -128,54 +135,15 @@ export async function createNewsletterPrintoutPreviewById(req: Request, res: Res
|
|||
let dates = await NewsletterDatesService.getAll(newsletterId);
|
||||
let recipient = await UserService.getById(parseInt(req.userId));
|
||||
|
||||
let data = {
|
||||
title: newsletter.title,
|
||||
description: newsletter.description,
|
||||
newsletterTitle: newsletter.newsletterTitle,
|
||||
newsletterText: newsletter.newsletterText,
|
||||
newsletterSignatur: newsletter.newsletterSignatur,
|
||||
dates: dates.map((d) => ({
|
||||
title: d.diffTitle ?? d.calendar.title,
|
||||
content: d.diffDescription ?? d.calendar.content,
|
||||
starttime: d.calendar.starttime,
|
||||
formattedStarttime: new Date(d.calendar.starttime).toLocaleDateString("de-DE", {
|
||||
weekday: "long",
|
||||
day: "2-digit",
|
||||
month: "long",
|
||||
}),
|
||||
formattedFullStarttime: new Date(d.calendar.starttime).toLocaleDateString("de-DE", {
|
||||
weekday: "long",
|
||||
day: "2-digit",
|
||||
month: "long",
|
||||
year: "numeric",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
}),
|
||||
endtime: d.calendar.endtime,
|
||||
formattedEndtime: new Date(d.calendar.endtime).toLocaleDateString("de-DE", {
|
||||
weekday: "long",
|
||||
day: "2-digit",
|
||||
month: "long",
|
||||
}),
|
||||
formattedFullEndtime: new Date(d.calendar.endtime).toLocaleDateString("de-DE", {
|
||||
weekday: "long",
|
||||
day: "2-digit",
|
||||
month: "long",
|
||||
year: "numeric",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
}),
|
||||
location: d.calendar.location,
|
||||
})),
|
||||
recipient: {
|
||||
firstname: recipient.firstname,
|
||||
lastname: recipient.lastname,
|
||||
salutation: "none",
|
||||
nameaffix: "",
|
||||
street: "Straße",
|
||||
streetNumber: "Hausnummer",
|
||||
streetNumberAdd: "Adresszusatz",
|
||||
},
|
||||
let data = NewsletterHelper.buildData(newsletter, dates);
|
||||
data.recipient = {
|
||||
firstname: recipient.firstname,
|
||||
lastname: recipient.lastname,
|
||||
salutation: Salutation.none,
|
||||
nameaffix: "",
|
||||
street: "Straße",
|
||||
streetNumber: "Hausnummer",
|
||||
streetNumberAdd: "Adresszusatz",
|
||||
};
|
||||
|
||||
let pdf = await PdfExport.renderFile({
|
||||
|
@ -219,15 +187,8 @@ export async function createNewsletter(req: Request, res: Response): Promise<any
|
|||
*/
|
||||
export async function createNewsletterPrintoutById(req: Request, res: Response): Promise<any> {
|
||||
let newsletterId = parseInt(req.params.newsletterId);
|
||||
let newsletter = await NewsletterService.getById(newsletterId);
|
||||
let dates = await NewsletterDatesService.getAll(newsletterId);
|
||||
let recipients = await NewsletterRecipientsService.getAll(newsletterId);
|
||||
|
||||
// print newsletter pdf for every member having newsletter type configured to print or if all members get printout
|
||||
// check if all users have mail or adress
|
||||
// squash all files to single for printing
|
||||
// use Helper for Newsletter printing and mail sending
|
||||
// default template
|
||||
await NewsletterHelper.printPdfs(newsletterId);
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
@ -244,54 +205,15 @@ export async function createNewsletterMailPreviewById(req: Request, res: Respons
|
|||
let dates = await NewsletterDatesService.getAll(newsletterId);
|
||||
let recipient = await UserService.getById(parseInt(req.userId));
|
||||
|
||||
let data = {
|
||||
title: newsletter.title,
|
||||
description: newsletter.description,
|
||||
newsletterTitle: newsletter.newsletterTitle,
|
||||
newsletterText: newsletter.newsletterText,
|
||||
newsletterSignatur: newsletter.newsletterSignatur,
|
||||
dates: dates.map((d) => ({
|
||||
title: d.diffTitle ?? d.calendar.title,
|
||||
content: d.diffDescription ?? d.calendar.content,
|
||||
starttime: d.calendar.starttime,
|
||||
formattedStarttime: new Date(d.calendar.starttime).toLocaleDateString("de-DE", {
|
||||
weekday: "long",
|
||||
day: "2-digit",
|
||||
month: "long",
|
||||
}),
|
||||
formattedFullStarttime: new Date(d.calendar.starttime).toLocaleDateString("de-DE", {
|
||||
weekday: "long",
|
||||
day: "2-digit",
|
||||
month: "long",
|
||||
year: "numeric",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
}),
|
||||
endtime: d.calendar.endtime,
|
||||
formattedEndtime: new Date(d.calendar.endtime).toLocaleDateString("de-DE", {
|
||||
weekday: "long",
|
||||
day: "2-digit",
|
||||
month: "long",
|
||||
}),
|
||||
formattedFullEndtime: new Date(d.calendar.endtime).toLocaleDateString("de-DE", {
|
||||
weekday: "long",
|
||||
day: "2-digit",
|
||||
month: "long",
|
||||
year: "numeric",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
}),
|
||||
location: d.calendar.location,
|
||||
})),
|
||||
recipient: {
|
||||
firstname: recipient.firstname,
|
||||
lastname: recipient.lastname,
|
||||
salutation: "none",
|
||||
nameaffix: "",
|
||||
street: "Straße",
|
||||
streetNumber: "Hausnummer",
|
||||
streetNumberAdd: "Adresszusatz",
|
||||
},
|
||||
let data = NewsletterHelper.buildData(newsletter, dates);
|
||||
data.recipient = {
|
||||
firstname: recipient.firstname,
|
||||
lastname: recipient.lastname,
|
||||
salutation: Salutation.none,
|
||||
nameaffix: "",
|
||||
street: "Straße",
|
||||
streetNumber: "Hausnummer",
|
||||
streetNumberAdd: "Adresszusatz",
|
||||
};
|
||||
|
||||
const { body } = await TemplateHelper.renderFileForModule({
|
||||
|
@ -313,11 +235,8 @@ export async function createNewsletterMailPreviewById(req: Request, res: Respons
|
|||
*/
|
||||
export async function sendNewsletterById(req: Request, res: Response): Promise<any> {
|
||||
let newsletterId = parseInt(req.params.newsletterId);
|
||||
let newsletter = await NewsletterService.getById(newsletterId);
|
||||
let dates = await NewsletterDatesService.getAll(newsletterId);
|
||||
let recipients = await NewsletterRecipientsService.getAll(newsletterId);
|
||||
|
||||
// attach ics files for date entries to mail
|
||||
await NewsletterHelper.sendMails(newsletterId);
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
||||
|
|
|
@ -264,7 +264,7 @@ export async function createProtocolPrintoutById(req: Request, res: Response): P
|
|||
let printout: CreateProtocolPrintoutCommand = {
|
||||
title,
|
||||
iteration: iteration + 1,
|
||||
filename: FileSystemHelper.formatPath("protocol", filename),
|
||||
filename: FileSystemHelper.normalizePath("protocol", filename),
|
||||
protocolId,
|
||||
};
|
||||
await ProtocolPrintoutCommandHandler.create(printout);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue