Merge branch 'main' into #1-account-management

# Conflicts:
#	src/data-source.ts
This commit is contained in:
Julian Krauser 2024-11-21 16:00:22 +01:00
commit 273745f830
66 changed files with 3721 additions and 10 deletions

View file

@ -0,0 +1,98 @@
import express, { Request, Response } from "express";
import {
getCalendarItemById,
getAllCalendarItems,
getAllCalendarTypes,
getCalendarTypeById,
createCalendarItem,
createCalendarType,
updateCalendarItem,
updateCalendarType,
deleteCalendarItem,
deleteCalendarType,
} from "../../controller/admin/calendarController";
import PermissionHelper from "../../helpers/permissionHelper";
var router = express.Router({ mergeParams: true });
router.get(
"/items",
PermissionHelper.passCheckMiddleware("read", "club", "calendar"),
async (req: Request, res: Response) => {
await getAllCalendarItems(req, res);
}
);
router.get(
"/item/:id",
PermissionHelper.passCheckMiddleware("read", "club", "calendar"),
async (req: Request, res: Response) => {
await getCalendarItemById(req, res);
}
);
router.get(
"/types",
PermissionHelper.passCheckMiddleware("read", "settings", "calendar_type"),
async (req: Request, res: Response) => {
await getAllCalendarTypes(req, res);
}
);
router.get(
"/type/:id",
PermissionHelper.passCheckMiddleware("read", "settings", "calendar_type"),
async (req: Request, res: Response) => {
await getCalendarTypeById(req, res);
}
);
router.post(
"/item",
PermissionHelper.passCheckMiddleware("create", "club", "calendar"),
async (req: Request, res: Response) => {
await createCalendarItem(req, res);
}
);
router.post(
"/type",
PermissionHelper.passCheckMiddleware("create", "settings", "calendar_type"),
async (req: Request, res: Response) => {
await createCalendarType(req, res);
}
);
router.patch(
"/item/:id",
PermissionHelper.passCheckMiddleware("update", "club", "calendar"),
async (req: Request, res: Response) => {
await updateCalendarItem(req, res);
}
);
router.patch(
"/type/:id",
PermissionHelper.passCheckMiddleware("update", "settings", "calendar_type"),
async (req: Request, res: Response) => {
await updateCalendarType(req, res);
}
);
router.delete(
"/item/:id",
PermissionHelper.passCheckMiddleware("delete", "club", "calendar"),
async (req: Request, res: Response) => {
await deleteCalendarItem(req, res);
}
);
router.delete(
"/type/:id",
PermissionHelper.passCheckMiddleware("delete", "settings", "calendar_type"),
async (req: Request, res: Response) => {
await deleteCalendarType(req, res);
}
);
export default router;

View file

@ -8,6 +8,9 @@ import membershipStatus from "./membershipStatus";
import qualification from "./qualification";
import member from "./member";
import protocol from "./protocol";
import calendar from "./calendar";
import role from "./role";
import user from "./user";
@ -34,6 +37,9 @@ router.use("/qualification", PermissionHelper.passCheckMiddleware("read", "setti
router.use("/member", PermissionHelper.passCheckMiddleware("read", "club", "member"), member);
router.use("/protocol", PermissionHelper.passCheckMiddleware("read", "club", "protocol"), protocol);
router.use("/calendar", PermissionHelper.passCheckMiddleware("read", "club", "calendar"), calendar);
router.use("/role", PermissionHelper.passCheckMiddleware("read", "user", "role"), role);
router.use("/user", PermissionHelper.passCheckMiddleware("read", "user", "user"), user);

View file

@ -0,0 +1,138 @@
import express, { Request, Response } from "express";
import {
createProtocol,
createProtocolAgendaById,
createProtocolDecisonsById,
createProtocolPrintoutById,
createProtocolVotingsById,
getAllProtocols,
getProtocolAgendaById,
getProtocolById,
getProtocolDecisonsById,
getProtocolPrecenseById,
getProtocolPrintoutByIdAndPrint,
getProtocolPrintoutsById,
getProtocolVotingsById,
synchronizeProtocolAgendaById,
synchronizeProtocolById,
synchronizeProtocolDecisonsById,
synchronizeProtocolPrecenseById,
synchronizeProtocolVotingsById,
} from "../../controller/admin/protocolController";
import PermissionHelper from "../../helpers/permissionHelper";
var router = express.Router({ mergeParams: true });
router.get("/", async (req: Request, res: Response) => {
await getAllProtocols(req, res);
});
router.get("/:id", async (req: Request, res: Response) => {
await getProtocolById(req, res);
});
router.get("/:protocolId/agenda", async (req: Request, res: Response) => {
await getProtocolAgendaById(req, res);
});
router.get("/:protocolId/decisions", async (req: Request, res: Response) => {
await getProtocolDecisonsById(req, res);
});
router.get("/:protocolId/presence", async (req: Request, res: Response) => {
await getProtocolPrecenseById(req, res);
});
router.get("/:protocolId/votings", async (req: Request, res: Response) => {
await getProtocolVotingsById(req, res);
});
router.get("/:protocolId/printouts", async (req: Request, res: Response) => {
await getProtocolPrintoutsById(req, res);
});
router.get("/:protocolId/printout/:printoutId", async (req: Request, res: Response) => {
await getProtocolPrintoutByIdAndPrint(req, res);
});
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "club", "protocol"),
async (req: Request, res: Response) => {
await createProtocol(req, res);
}
);
router.post(
"/:protocolId/agenda",
PermissionHelper.passCheckMiddleware("create", "club", "protocol"),
async (req: Request, res: Response) => {
await createProtocolAgendaById(req, res);
}
);
router.post(
"/:protocolId/decision",
PermissionHelper.passCheckMiddleware("create", "club", "protocol"),
async (req: Request, res: Response) => {
await createProtocolDecisonsById(req, res);
}
);
router.post(
"/:protocolId/voting",
PermissionHelper.passCheckMiddleware("create", "club", "protocol"),
async (req: Request, res: Response) => {
await createProtocolVotingsById(req, res);
}
);
router.post(
"/:protocolId/printout",
PermissionHelper.passCheckMiddleware("create", "club", "protocol"),
async (req: Request, res: Response) => {
await createProtocolPrintoutById(req, res);
}
);
router.patch(
"/:id/synchronize",
PermissionHelper.passCheckMiddleware("update", "club", "protocol"),
async (req: Request, res: Response) => {
await synchronizeProtocolById(req, res);
}
);
router.patch(
"/:protocolId/synchronize/agenda",
PermissionHelper.passCheckMiddleware("update", "club", "protocol"),
async (req: Request, res: Response) => {
await synchronizeProtocolAgendaById(req, res);
}
);
router.patch(
"/:protocolId/synchronize/decisions",
PermissionHelper.passCheckMiddleware("update", "club", "protocol"),
async (req: Request, res: Response) => {
await synchronizeProtocolDecisonsById(req, res);
}
);
router.patch(
"/:protocolId/synchronize/votings",
PermissionHelper.passCheckMiddleware("update", "club", "protocol"),
async (req: Request, res: Response) => {
await synchronizeProtocolVotingsById(req, res);
}
);
router.put(
"/:protocolId/synchronize/presence",
PermissionHelper.passCheckMiddleware("update", "club", "protocol"),
async (req: Request, res: Response) => {
await synchronizeProtocolPrecenseById(req, res);
}
);
export default router;

View file

@ -6,6 +6,7 @@ import allowSetup from "../middleware/allowSetup";
import authenticate from "../middleware/authenticate";
import errorHandler from "../middleware/errorHandler";
import publicAvailable from "./public";
import setup from "./setup";
import auth from "./auth";
import admin from "./admin/index";
@ -22,6 +23,7 @@ export default (app: Express) => {
app.use(cors());
app.options("*", cors());
app.use("/public", publicAvailable);
app.use("/setup", allowSetup, setup);
app.use("/auth", auth);
app.use(authenticate);

10
src/routes/public.ts Normal file
View file

@ -0,0 +1,10 @@
import express from "express";
import { getCalendarItemsByTypes } from "../controller/publicController";
var router = express.Router({ mergeParams: true });
router.get("/calendar", async (req, res) => {
await getCalendarItemsByTypes(req, res);
});
export default router;