import express, { Request, Response } from "express"; import { addAwardToMember, addCommunicationToMember, addExecutivePositionToMember, addMembershipToMember, addQualificationToMember, createMember, createMemberPrintoutList, deleteAwardOfMember, deleteCommunicationOfMember, deleteExecutivePositionOfMember, deleteMemberById, deleteMembershipOfMember, deleteQualificationOfMember, getAllMembers, getAwardByMemberAndRecord, getAwardsByMember, getCommunicationByMemberAndRecord, getCommunicationsByMember, getExecutivePositionByMemberAndRecord, getExecutivePositionsByMember, getMemberById, getMembershipByMemberAndRecord, getMembershipsByMember, getQualificationByMemberAndRecord, getQualificationsByMember, updateAwardOfMember, updateCommunicationOfMember, updateExecutivePositionOfMember, updateMemberById, updateMembershipOfMember, updateQualificationOfMember, } from "../../../controller/admin/club/memberController"; import PermissionHelper from "../../../helpers/permissionHelper"; var router = express.Router({ mergeParams: true }); router.get("/", async (req: Request, res: Response) => { await getAllMembers(req, res); }); router.get("/:id", async (req: Request, res: Response) => { await getMemberById(req, res); }); router.get("/print/namelist", async (req: Request, res: Response) => { await createMemberPrintoutList(req, res); }); router.get("/:memberId/memberships", async (req: Request, res: Response) => { await getMembershipsByMember(req, res); }); router.get("/:memberId/membership/:id", async (req: Request, res: Response) => { await getMembershipByMemberAndRecord(req, res); }); router.get("/:memberId/awards", async (req: Request, res: Response) => { await getAwardsByMember(req, res); }); router.get("/:memberId/award/:id", async (req: Request, res: Response) => { await getAwardByMemberAndRecord(req, res); }); router.get("/:memberId/qualifications", async (req: Request, res: Response) => { await getQualificationsByMember(req, res); }); router.get("/:memberId/qualification/:id", async (req: Request, res: Response) => { await getQualificationByMemberAndRecord(req, res); }); router.get("/:memberId/positions", async (req: Request, res: Response) => { await getExecutivePositionsByMember(req, res); }); router.get("/:memberId/position/:id", async (req: Request, res: Response) => { await getExecutivePositionByMemberAndRecord(req, res); }); router.get("/:memberId/communications", async (req: Request, res: Response) => { await getCommunicationsByMember(req, res); }); router.get("/:memberId/communication/:id", async (req: Request, res: Response) => { await getCommunicationByMemberAndRecord(req, res); }); router.post( "/", PermissionHelper.passCheckMiddleware("create", "club", "member"), async (req: Request, res: Response) => { await createMember(req, res); } ); router.post( "/:memberId/membership", PermissionHelper.passCheckMiddleware("create", "club", "member"), async (req: Request, res: Response) => { await addMembershipToMember(req, res); } ); router.post( "/:memberId/award", PermissionHelper.passCheckMiddleware("create", "club", "member"), async (req: Request, res: Response) => { await addAwardToMember(req, res); } ); router.post( "/:memberId/qualification", PermissionHelper.passCheckMiddleware("create", "club", "member"), async (req: Request, res: Response) => { await addQualificationToMember(req, res); } ); router.post( "/:memberId/position", PermissionHelper.passCheckMiddleware("create", "club", "member"), async (req: Request, res: Response) => { await addExecutivePositionToMember(req, res); } ); router.post( "/:memberId/communication", PermissionHelper.passCheckMiddleware("create", "club", "member"), async (req: Request, res: Response) => { await addCommunicationToMember(req, res); } ); router.patch( "/:id", PermissionHelper.passCheckMiddleware("update", "club", "member"), async (req: Request, res: Response) => { await updateMemberById(req, res); } ); router.patch( "/:memberId/membership/:recordId", PermissionHelper.passCheckMiddleware("update", "club", "member"), async (req: Request, res: Response) => { await updateMembershipOfMember(req, res); } ); router.patch( "/:memberId/award/:recordId", PermissionHelper.passCheckMiddleware("update", "club", "member"), async (req: Request, res: Response) => { await updateAwardOfMember(req, res); } ); router.patch( "/:memberId/qualification/:recordId", PermissionHelper.passCheckMiddleware("update", "club", "member"), async (req: Request, res: Response) => { await updateQualificationOfMember(req, res); } ); router.patch( "/:memberId/position/:recordId", PermissionHelper.passCheckMiddleware("update", "club", "member"), async (req: Request, res: Response) => { await updateExecutivePositionOfMember(req, res); } ); router.patch( "/:memberId/communication/:recordId", PermissionHelper.passCheckMiddleware("update", "club", "member"), async (req: Request, res: Response) => { await updateCommunicationOfMember(req, res); } ); router.delete( "/:id", PermissionHelper.passCheckMiddleware("delete", "club", "member"), async (req: Request, res: Response) => { await deleteMemberById(req, res); } ); router.delete( "/:memberId/membership/:recordId", PermissionHelper.passCheckMiddleware("delete", "club", "member"), async (req: Request, res: Response) => { await deleteMembershipOfMember(req, res); } ); router.delete( "/:memberId/award/:recordId", PermissionHelper.passCheckMiddleware("delete", "club", "member"), async (req: Request, res: Response) => { await deleteAwardOfMember(req, res); } ); router.delete( "/:memberId/qualification/:recordId", PermissionHelper.passCheckMiddleware("delete", "club", "member"), async (req: Request, res: Response) => { await deleteQualificationOfMember(req, res); } ); router.delete( "/:memberId/position/:recordId", PermissionHelper.passCheckMiddleware("delete", "club", "member"), async (req: Request, res: Response) => { await deleteExecutivePositionOfMember(req, res); } ); router.delete( "/:memberId/communication/:recordId", PermissionHelper.passCheckMiddleware("delete", "club", "member"), async (req: Request, res: Response) => { await deleteCommunicationOfMember(req, res); } ); export default router;