You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
1.1 KiB
JavaScript

const express = require("express")
const router = express.Router()
const productController = require("../controllers/product")
const auth = require("../auth")
const { authenticateToken, verifyAdmin } = auth
// S50
// Create a product route (accessible only by isAdmin)
router.post("/products", authenticateToken, verifyAdmin, productController.createProduct)
// Retrieve all products route (accessible to both admin and normal user)
router.get("/all", productController.getAllProducts)
// Retrieve all active products route (accessible to both admin and normal user)
router.get("/active", productController.getActiveProducts)
// S51
// Retrieve a single product by ID
router.get('/products/:id', productController.getProductById);
// Update product route + admin verification
router.put('/products/:id', authenticateToken, verifyAdmin, productController.updateProduct);
// Archive a product
router.put('/products/:productId/archive', authenticateToken, verifyAdmin, productController.archiveProduct);
// Activate a product
router.put('/products/:productId/activate', authenticateToken, verifyAdmin, productController.activateProduct);
module.exports = router