education controller, service, command

This commit is contained in:
Julian Krauser 2025-06-03 15:20:46 +02:00
parent 5368a96d0f
commit fded8a663a
29 changed files with 884 additions and 5 deletions

View file

@ -2,12 +2,14 @@ import express, { Request, Response } from "express";
import {
addAwardToMember,
addCommunicationToMember,
addEducationToMember,
addExecutivePositionToMember,
addMembershipToMember,
addQualificationToMember,
createMember,
deleteAwardOfMember,
deleteCommunicationOfMember,
deleteEducationsOfMember,
deleteExecutivePositionOfMember,
deleteMemberById,
deleteMembershipOfMember,
@ -17,6 +19,8 @@ import {
getAwardsByMember,
getCommunicationByMemberAndRecord,
getCommunicationsByMember,
getEducationByMemberAndRecord,
getEducationsByMember,
getExecutivePositionByMemberAndRecord,
getExecutivePositionsByMember,
getMemberById,
@ -32,6 +36,7 @@ import {
getQualificationsByMember,
updateAwardOfMember,
updateCommunicationOfMember,
updateEducationOfMember,
updateExecutivePositionOfMember,
updateMemberById,
updateMembershipOfMember,
@ -97,6 +102,14 @@ router.get("/:memberId/qualification/:id", async (req: Request, res: Response) =
await getQualificationByMemberAndRecord(req, res);
});
router.get("/:memberId/educations", async (req: Request, res: Response) => {
await getEducationsByMember(req, res);
});
router.get("/:memberId/education/:id", async (req: Request, res: Response) => {
await getEducationByMemberAndRecord(req, res);
});
router.get("/:memberId/positions", async (req: Request, res: Response) => {
await getExecutivePositionsByMember(req, res);
});
@ -145,6 +158,14 @@ router.post(
}
);
router.post(
"/:memberId/education",
PermissionHelper.passCheckMiddleware("create", "club", "member"),
async (req: Request, res: Response) => {
await addEducationToMember(req, res);
}
);
router.post(
"/:memberId/position",
PermissionHelper.passCheckMiddleware("create", "club", "member"),
@ -193,6 +214,14 @@ router.patch(
}
);
router.patch(
"/:memberId/education/:recordId",
PermissionHelper.passCheckMiddleware("update", "club", "member"),
async (req: Request, res: Response) => {
await updateEducationOfMember(req, res);
}
);
router.patch(
"/:memberId/position/:recordId",
PermissionHelper.passCheckMiddleware("update", "club", "member"),
@ -241,6 +270,14 @@ router.delete(
}
);
router.delete(
"/:memberId/education/:recordId",
PermissionHelper.passCheckMiddleware("delete", "club", "member"),
async (req: Request, res: Response) => {
await deleteEducationsOfMember(req, res);
}
);
router.delete(
"/:memberId/position/:recordId",
PermissionHelper.passCheckMiddleware("delete", "club", "member"),

View file

@ -0,0 +1,45 @@
import express, { Request, Response } from "express";
import {
createEducation,
deleteEducation,
getAllEducations,
getEducationById,
updateEducation,
} from "../../../controller/admin/configuration/educationController";
import PermissionHelper from "../../../helpers/permissionHelper";
var router = express.Router({ mergeParams: true });
router.get("/", async (req: Request, res: Response) => {
await getAllEducations(req, res);
});
router.get("/:id", async (req: Request, res: Response) => {
await getEducationById(req, res);
});
router.post(
"/",
PermissionHelper.passCheckMiddleware("create", "configuration", "education"),
async (req: Request, res: Response) => {
await createEducation(req, res);
}
);
router.patch(
"/:id",
PermissionHelper.passCheckMiddleware("update", "configuration", "education"),
async (req: Request, res: Response) => {
await updateEducation(req, res);
}
);
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "configuration", "education"),
async (req: Request, res: Response) => {
await deleteEducation(req, res);
}
);
export default router;

View file

@ -7,6 +7,7 @@ import communicationType from "./configuration/communicationType";
import executivePosition from "./configuration/executivePosition";
import membershipStatus from "./configuration/membershipStatus";
import qualification from "./configuration/qualification";
import education from "./configuration/education";
import salutation from "./configuration/salutation";
import calendarType from "./configuration/calendarType";
import queryStore from "./configuration/queryStore";
@ -70,6 +71,14 @@ router.use(
]),
qualification
);
router.use(
"/education",
PermissionHelper.passCheckSomeMiddleware([
{ requiredPermission: "read", section: "configuration", module: "education" },
{ requiredPermission: "read", section: "club", module: "member" },
]),
education
);
router.use(
"/salutation",
PermissionHelper.passCheckSomeMiddleware([