routes/user.router.js

const userController = require("../controllers/user.controller");
const authJwt = require("../middlewares/auth.jwt.middleware");
const bodyValidation = require("../middlewares/body.validator");
const pagination = require("../middlewares/pagination.middleware");
const updateUserValidator = require("../validators/user.validators");
const multer = require("multer");

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

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

/**
 * Search users
 */
userRouter.route("/search/:terms").get(userController.search);

/**
 * Get all users
 */
userRouter.route("/").get(
  // authJwt(),
  pagination(),
  userController.getAll
);

/**
 * Read, Update and Delete Users
 */
userRouter
  .route("/:id")
  .get(
    // authJwt(),
    userController.getById
  )
  .put(
    // authJwt(),
    bodyValidation(updateUserValidator),
    userController.update
  )
  // .patch(authJwt(), upload.single("avatar"), userController.updateAvatar)
  .delete(
    // authJwt(["Admin"]),
    userController.delete
  );

module.exports = userRouter;