/** * 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); };