Source: routes/users.routes.js

/**
 * Express router providing User related routes
 * @module UserRouter
 * @requires express
 * @requires UserController User related CRUD operations
 */
module.exports = app => {
  /**
   * UserController module
   * @const
   */
  const users = require("../controllers/user.controller.js")

  /**
   * express module
   * @const
   */
  const express = require("express")

  /**
   * Express router to mount Item related CRUD operations on.
   * @const 
   */
  const router = express.Router()


  /**
   * Create a new User
   * @name post/create
   * @see module:UserController~create
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.post("/", users.create);

  /**
   * Retrieve all Users
   * @name get/findAll
   * @see module:UserController~findAll
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.get("/", users.findAll);

  /**
   * Delete all Users
   * @name delete/deleteAll
   * @see module:UserController~deleteAll
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.delete("/", users.deleteAll);

  /**
   * Retrieve User by social auth ID Token 
   * @name get/findByIdToken
   * @see module:UserController~findByIdToken
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.get("/token/:token", users.findByIdToken);

  /**
   * Retrieve a single User with id 
   * @name get/findOne
   * @see module:UserController~findOne
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.get("/:id", users.findOne);

  /**
   * Update a User with id 
   * @name put/update
   * @see module:UserController~update
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.put("/:id", users.update);

  /**
   * Delete a User with id 
   * @name delete/delete
   * @see module:UserController~delete
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.delete("/:id", users.delete);

  /**
   * Add an Item to a User with id 
   * @name post/addItemToUser
   * @see module:UserController~addItemToUser
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.post("/:user", users.addItemToUser);

  /**
   * Update an Item from a User with id
   * @name put/updateItemFromUser
   * @see module:UserController~updateItemFromUser
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.put("/:user/:item", users.updateItemFromUser);

  /**
   * Delete an Item from a User with id
   * @name delete/deleteItemFromUser
   * @see module:UserController~deleteItemFromUser
   * @function
   * @param {string} path Express path
   * @param {callback} middleware Express middleware.
   */
  router.delete("/:user/:item", users.deleteItemFromUser);

  app.use('/api/users', router);
};