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:
@@ -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;
|
||||
Reference in New Issue
Block a user