- Implemented a new API endpoint to populate country holidays in the database. - Enhanced the HolidayController to handle holiday population logic for multiple countries. - Updated the holiday API router to include the new populate endpoint. - Added a service method in the frontend to trigger holiday population. - Integrated a button in the admin center overview for easy access to populate holidays. - Improved error handling and user feedback during the holiday population process.
29 lines
1.8 KiB
TypeScript
29 lines
1.8 KiB
TypeScript
import express from "express";
|
|
import HolidayController from "../../controllers/holiday-controller";
|
|
import safeControllerFunction from "../../shared/safe-controller-function";
|
|
import teamOwnerOrAdminValidator from "../../middlewares/validators/team-owner-or-admin-validator";
|
|
import idParamValidator from "../../middlewares/validators/id-param-validator";
|
|
|
|
const holidayApiRouter = express.Router();
|
|
|
|
// Holiday types
|
|
holidayApiRouter.get("/types", safeControllerFunction(HolidayController.getHolidayTypes));
|
|
|
|
// Organization holidays
|
|
holidayApiRouter.get("/organization", teamOwnerOrAdminValidator, safeControllerFunction(HolidayController.getOrganizationHolidays));
|
|
holidayApiRouter.post("/organization", teamOwnerOrAdminValidator, safeControllerFunction(HolidayController.createOrganizationHoliday));
|
|
holidayApiRouter.put("/organization/:id", teamOwnerOrAdminValidator, idParamValidator, safeControllerFunction(HolidayController.updateOrganizationHoliday));
|
|
holidayApiRouter.delete("/organization/:id", teamOwnerOrAdminValidator, idParamValidator, safeControllerFunction(HolidayController.deleteOrganizationHoliday));
|
|
|
|
// Country holidays
|
|
holidayApiRouter.get("/countries", safeControllerFunction(HolidayController.getAvailableCountries));
|
|
holidayApiRouter.get("/countries/:country_code", safeControllerFunction(HolidayController.getCountryHolidays));
|
|
holidayApiRouter.post("/import", teamOwnerOrAdminValidator, safeControllerFunction(HolidayController.importCountryHolidays));
|
|
|
|
// Calendar view
|
|
holidayApiRouter.get("/calendar", teamOwnerOrAdminValidator, safeControllerFunction(HolidayController.getHolidayCalendar));
|
|
|
|
// Populate holidays
|
|
holidayApiRouter.post("/populate", teamOwnerOrAdminValidator, safeControllerFunction(HolidayController.populateCountryHolidays));
|
|
|
|
export default holidayApiRouter;
|