newsletter CRUD & pdf

This commit is contained in:
Julian Krauser 2024-12-25 12:22:28 +01:00
parent e9b29f8acf
commit 01ce3fdd39
31 changed files with 1185 additions and 23 deletions

View file

@ -15,6 +15,7 @@ import member from "./member";
import protocol from "./protocol";
import calendar from "./calendar";
import queryBuilder from "./queryBuilder";
import newsletter from "./newsletter";
import role from "./role";
import user from "./user";
@ -48,6 +49,7 @@ router.use("/member", PermissionHelper.passCheckMiddleware("read", "club", "memb
router.use("/protocol", PermissionHelper.passCheckMiddleware("read", "club", "protocol"), protocol);
router.use("/calendar", PermissionHelper.passCheckMiddleware("read", "club", "calendar"), calendar);
router.use("/querybuilder", PermissionHelper.passCheckMiddleware("read", "club", "query"), queryBuilder);
router.use("/newsletter", PermissionHelper.passCheckMiddleware("read", "club", "newsletter"), newsletter);
router.use("/role", PermissionHelper.passCheckMiddleware("read", "user", "role"), role);
router.use("/user", PermissionHelper.passCheckMiddleware("read", "user", "user"), user);

View file

@ -0,0 +1,85 @@
import express, { Request, Response } from "express";
import {
createNewsletter,
createNewsletterPrintoutById,
getAllNewsletters,
getNewsletterDatesById,
getNewsletterById,
getNewsletterRecipientsById,
getNewsletterPrintoutByIdAndPrint,
getNewsletterPrintoutsById,
synchronizeNewsletterDatesById,
synchronizeNewsletterById,
synchronizeNewsletterRecipientsById,
} from "../../controller/admin/newsletterController";
import PermissionHelper from "../../helpers/permissionHelper";
var router = express.Router({ mergeParams: true });
router.get("/", async (req: Request, res: Response) => {
await getAllNewsletters(req, res);
});
router.get("/:id", async (req: Request, res: Response) => {
await getNewsletterById(req, res);
});
router.get("/:protocolId/dates", async (req: Request, res: Response) => {
await getNewsletterDatesById(req, res);
});
router.get("/:protocolId/recipients", async (req: Request, res: Response) => {
await getNewsletterRecipientsById(req, res);
});
router.get("/:protocolId/printouts", async (req: Request, res: Response) => {
await getNewsletterPrintoutsById(req, res);
});
router.get("/:protocolId/printout/:filename", async (req: Request, res: Response) => {
await getNewsletterPrintoutByIdAndPrint(req, res);
});
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "club", "protocol"),
async (req: Request, res: Response) => {
await createNewsletter(req, res);
}
);
router.post(
"/:protocolId/printout",
PermissionHelper.passCheckMiddleware("create", "club", "protocol"),
async (req: Request, res: Response) => {
await createNewsletterPrintoutById(req, res);
}
);
router.patch(
"/:id/synchronize",
PermissionHelper.passCheckMiddleware("update", "club", "protocol"),
async (req: Request, res: Response) => {
await synchronizeNewsletterById(req, res);
}
);
router.patch(
"/:protocolId/synchronize/dates",
PermissionHelper.passCheckMiddleware("update", "club", "protocol"),
async (req: Request, res: Response) => {
await synchronizeNewsletterDatesById(req, res);
}
);
router.patch(
"/:protocolId/synchronize/recipients",
PermissionHelper.passCheckMiddleware("update", "club", "protocol"),
async (req: Request, res: Response) => {
await synchronizeNewsletterRecipientsById(req, res);
}
);
// TODO: send mails | send mail preview | render preview before print job
export default router;