Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
mudeerapi.abasa.com
/
nodetest
/
src
/
routes
/
Filename :
leave.routes.js
back
Copy
import express from "express"; import checkAuth from "../middlewares/check-auth.js"; import { checkRole } from "../middlewares/checkRole.js"; import { migrateLeaveData, getUserLeaveInfo, createLeaveRequest, listLeaveRequests, getLeaveRequestById, approveLeaveRequest, rejectLeaveRequest, cancelLeaveRequest, addLeaveReply, deleteLeaveReply } from '../controllers/leave.controller.js'; const router = express.Router(); //testing // Get user leave info (accessible by self, department head, admin) router.get("/:user_id/leave-info", checkAuth, getUserLeaveInfo); // Unified migration endpoint (now runs tenure sync + field cleanup on startup, manual trigger available) router.post("/migrate-leave-data", checkAuth, checkRole(['super_admin', 'admin']), migrateLeaveData ); // Leave Request Management router.get("/leave-request", checkAuth, listLeaveRequests); router.post("/leave-request", checkAuth, createLeaveRequest); router.get("/leave-request/:id", checkAuth, getLeaveRequestById); router.patch( "/leave-request/:id/approve", checkAuth, checkRole(['super_admin', 'admin', 'department_head']), approveLeaveRequest ); router.patch( "/leave-request/:id/reject", checkAuth, checkRole(['super_admin', 'admin', 'department_head']), rejectLeaveRequest ); router.patch("/leave-request/:id/cancel", checkAuth, cancelLeaveRequest); router.post("/leave-request/:id/replies", checkAuth, addLeaveReply); router.delete("/leave-request/:id/replies/:replyId", checkAuth, deleteLeaveReply); export default router;