/**
* Express router providing Item related routes
* @module ItemRouter
* @requires express
* @requires ItemController Item related CRUD operations
*/
module.exports = app => {
/**
* ItemController module
* @const
*/
const items = require("../controllers/item.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 Item
* @name post/create
* @see module:ItemController~create
* @function
* @param {string} path Express path
* @param {callback} middleware Express middleware.
*/
router.post("/", items.create);
/**
* Retrieve all Items
* @name get/findAll
* @see module:ItemController~findAll
* @function
* @param {string} path Express path
* @param {callback} middleware Express middleware.
*/
router.get("/", items.findAll);
/**
* Delete all Items
* @name delete/deleteAll
* @see module:ItemController~deleteAll
* @function
* @param {string} path Express path
* @param {callback} middleware Express middleware.
*/
router.delete("/", items.deleteAll);
/**
* Retrieve a single Item with name
* @name get/findOne
* @see module:ItemController~findOne
* @function
* @param {string} path Express path
* @param {callback} middleware Express middleware.
*/
router.get("/:name", items.findOne);
/**
* Update a Item with name
* @name put/update
* @see module:ItemController~update
* @function
* @param {string} path Express path
* @param {callback} middleware Express middleware.
*/
router.put("/:name", items.update);
/**
* Delete a Item with name
* @name delete
* @see module:ItemController~delete
* @function
* @param {string} path Express path
* @param {callback} middleware Express middleware.
*/
router.delete("/:name", items.delete);
/**
* Retrieve a single Item with ID
* @name get/findOneById
* @see module:ItemController~findOneById
* @function
* @param {string} path Express path
* @param {callback} middleware Express middleware.
*/
router.get("/id/:id", items.findOneById);
app.use('/api/items', router);
};