refactor(routes): move product/products from cms to ecommerce domain

Product and products routes were sitting under /api/cms but conceptually
belong to a separate e-commerce domain. Split them out into a dedicated
ecommerce subrouter mounted at /api/ecommerce.
This commit is contained in:
2026-04-25 17:20:36 +02:00
parent 64e33268e3
commit c09b60131a
5 changed files with 19 additions and 2 deletions
+18
View File
@@ -0,0 +1,18 @@
var routes = require('express').Router();
routes.use('/product', require('./product.routes'));
routes.use('/products', require('./products.routes'));
routes.use(function (err, req, res, next) {
if (err.name === 'ValidationError') {
return res.status(422).json({
errors: Object.keys(err.errors).reduce(function (errors, key) {
errors[key] = err.errors[key].message;
return errors;
}, {})
});
}
return next(err);
});
module.exports = routes;
@@ -0,0 +1,23 @@
const express = require('express');
const {
getProduct,
getProducts,
createProduct,
addFavoriteProduct,
deleteFavoriteProduct,
deleteProduct,
updateProduct,
} = require('../../../controllers/product.controller');
const auth = require('../../../middlewares/auth');
const productRouter = express.Router();
productRouter.get('/', auth.optional, getProducts);
productRouter.post('/', auth.required, createProduct);
productRouter.get('/:slug', auth.optional, getProduct);
productRouter.put('/:slug', auth.required, updateProduct);
productRouter.delete('/:slug', auth.required, deleteProduct);
productRouter.post('/:slug/favorite', auth.required, addFavoriteProduct);
productRouter.delete('/:slug/favorite', auth.required, deleteFavoriteProduct);
module.exports = productRouter;
@@ -0,0 +1,15 @@
const express = require('express');
const {
getProducts,
getProductsByCategory,
productsFeed
} = require('../../../controllers/products.controller');
const auth = require('../../../middlewares/auth');
const productsRouter = express.Router();
productsRouter.get('/', auth.optional, getProducts);
productsRouter.get('/feed', auth.required, productsFeed);
productsRouter.get('/:category', auth.optional, getProductsByCategory);
module.exports = productsRouter;