routes/course.router.js

const multer = require("multer");
const courseController = require("../controllers/course.controller");
const authJwt = require("../middlewares/auth.jwt.middleware");
const bodyValidation = require("../middlewares/body.validator");
const pagination = require("../middlewares/pagination.middleware");
const {
  createCourseValidator,
  updateCourseValidator,
} = require("../validators/course.validators");

const courseRouter = require("express").Router();

/**
 * Multer configuration for the trainings covers
 */
const storage = require("../config/config.multer")("covers");
const upload = multer({ storage });

/**
 * Search courses
 */
courseRouter.route("/search/:terms").get(courseController.search);

/**
 * Get all courses with pagination
 * Create a new course
 */
courseRouter
  .route("/")
  .get(pagination(), courseController.getAll)
  .post(bodyValidation(createCourseValidator), courseController.create);

/**
 * Read, update and delete courses
 */
courseRouter
  .route("/:id")
  .get(courseController.getById)
  .put(bodyValidation(updateCourseValidator), courseController.update)
  .delete(
    // authJwt(["Admin"]),
    courseController.delete
  );

/**
 * Read, update and delete courses dates
 */
courseRouter.route("/:id/dates").get(courseController.getDates);
// .put(bodyValidation(updateCourseValidator), courseController.updateDates);

courseRouter.route("/:id/materials").get(courseController.getDates);

module.exports = courseRouter;