Initial commit

This commit is contained in:
2026-09-16 17:36:46 +05:30
commit c9f429d123
117 changed files with 14145 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
const express = require('express');
const router = express.Router();
const { registerUser, loginUser, getUserProfile, updateUserProfile } = require('../controllers/authController');
const { protect } = require('../middleware/authMiddleware');
router.post('/register', registerUser);
router.post('/login', loginUser);
router.get('/profile', protect, getUserProfile);
router.put('/profile', protect, updateUserProfile);
module.exports = router;

View File

@@ -0,0 +1,12 @@
const express = require('express');
const router = express.Router();
const { getBanners, createBanner, updateBanner, deleteBanner } = require('../controllers/bannerController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.get('/', getBanners);
router.post('/', protect, authorize('Admin'), createBanner);
router.put('/:id', protect, authorize('Admin'), updateBanner);
router.delete('/:id', protect, authorize('Admin'), deleteBanner);
module.exports = router;

View File

@@ -0,0 +1,12 @@
const express = require('express');
const router = express.Router();
const { getBrands, createBrand, updateBrand, deleteBrand } = require('../controllers/brandController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.get('/', getBrands);
router.post('/', protect, authorize('Admin'), createBrand);
router.put('/:id', protect, authorize('Admin'), updateBrand);
router.delete('/:id', protect, authorize('Admin'), deleteBrand);
module.exports = router;

View File

@@ -0,0 +1,12 @@
const express = require('express');
const router = express.Router();
const { getCart, addToCart, updateCartItem, removeCartItem, applyCoupon } = require('../controllers/cartController');
router.get('/', getCart);
router.post('/add', addToCart);
router.put('/update', updateCartItem);
router.delete('/item/:itemId', removeCartItem);
router.post('/coupon', applyCoupon);
module.exports = router;

View File

@@ -0,0 +1,12 @@
const express = require('express');
const router = express.Router();
const { getCategories, createCategory, updateCategory, deleteCategory } = require('../controllers/categoryController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.get('/', getCategories);
router.post('/', protect, authorize('Admin'), createCategory);
router.put('/:id', protect, authorize('Admin'), updateCategory);
router.delete('/:id', protect, authorize('Admin'), deleteCategory);
module.exports = router;

View File

@@ -0,0 +1,11 @@
const express = require('express');
const router = express.Router();
const { submitContactForm, getContactMessages, updateMessageStatus } = require('../controllers/contactController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.post('/', submitContactForm);
router.get('/', protect, authorize('Admin'), getContactMessages);
router.put('/:id/status', protect, authorize('Admin'), updateMessageStatus);
module.exports = router;

View File

@@ -0,0 +1,11 @@
const express = require('express');
const router = express.Router();
const { getCoupons, createCoupon, deleteCoupon } = require('../controllers/couponController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.get('/', protect, authorize('Admin'), getCoupons);
router.post('/', protect, authorize('Admin'), createCoupon);
router.delete('/:id', protect, authorize('Admin'), deleteCoupon);
module.exports = router;

View File

@@ -0,0 +1,10 @@
const express = require('express');
const router = express.Router();
const { getEmailTemplates, updateEmailTemplate } = require('../controllers/emailTemplateController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.get('/', protect, authorize('Admin'), getEmailTemplates);
router.put('/:id', protect, authorize('Admin'), updateEmailTemplate);
module.exports = router;

View File

@@ -0,0 +1,11 @@
const express = require('express');
const router = express.Router();
const { getStockOverview, adjustStock, getInventoryHistory } = require('../controllers/inventoryController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.get('/overview', protect, authorize('Admin'), getStockOverview);
router.post('/adjust', protect, authorize('Admin'), adjustStock);
router.get('/history', protect, authorize('Admin'), getInventoryHistory);
module.exports = router;

View File

@@ -0,0 +1,19 @@
const express = require('express');
const router = express.Router();
const {
createOrder,
getMyOrders,
getOrderById,
getAllOrders,
updateOrderStatus
} = require('../controllers/orderController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.post('/', protect, createOrder);
router.get('/my-orders', protect, getMyOrders);
router.get('/admin/all', protect, authorize('Admin'), getAllOrders);
router.get('/:id', protect, getOrderById);
router.put('/:id/status', protect, authorize('Admin'), updateOrderStatus);
module.exports = router;

View File

@@ -0,0 +1,24 @@
const express = require('express');
const router = express.Router();
const {
getProducts,
getGuitarRecommendations,
getProductBySlug,
compareProducts,
createProduct,
updateProduct,
deleteProduct
} = require('../controllers/productController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.get('/', getProducts);
router.post('/guitar-finder', getGuitarRecommendations);
router.post('/compare', compareProducts);
router.get('/:slug', getProductBySlug);
router.post('/', protect, authorize('Admin'), createProduct);
router.put('/:id', protect, authorize('Admin'), updateProduct);
router.delete('/:id', protect, authorize('Admin'), deleteProduct);
module.exports = router;

View File

@@ -0,0 +1,10 @@
const express = require('express');
const router = express.Router();
const { getProductReviews, createReview } = require('../controllers/reviewController');
const { protect } = require('../middleware/authMiddleware');
router.get('/product/:productId', getProductReviews);
router.post('/', protect, createReview);
module.exports = router;

View File

@@ -0,0 +1,10 @@
const express = require('express');
const router = express.Router();
const { getSettings, updateSettings } = require('../controllers/settingsController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.get('/', getSettings);
router.put('/', protect, authorize('Admin'), updateSettings);
module.exports = router;

View File

@@ -0,0 +1,10 @@
const express = require('express');
const router = express.Router();
const { getSocialMedia, updateSocialMedia } = require('../controllers/socialMediaController');
const { protect, authorize } = require('../middleware/authMiddleware');
router.get('/', getSocialMedia);
router.put('/', protect, authorize('Admin'), updateSocialMedia);
module.exports = router;

View File

@@ -0,0 +1,25 @@
const express = require('express');
const router = express.Router();
const upload = require('../middleware/upload');
const { protect, authorize } = require('../middleware/authMiddleware');
const { successResponse, errorResponse } = require('../utils/apiResponse');
// Single image upload
router.post('/', protect, authorize('Admin'), upload.single('media'), (req, res) => {
if (!req.file) {
return errorResponse(res, 'Please upload a file', [], 400);
}
const fileUrl = `/uploads/${req.file.filename}`;
return successResponse(res, 'File uploaded successfully', { url: fileUrl });
});
// Multiple product images upload
router.post('/multiple', protect, authorize('Admin'), upload.array('images', 10), (req, res) => {
if (!req.files || req.files.length === 0) {
return errorResponse(res, 'Please upload at least one image file', [], 400);
}
const urls = req.files.map(file => `/uploads/${file.filename}`);
return successResponse(res, 'Images uploaded successfully', { urls });
});
module.exports = router;

View File

@@ -0,0 +1,10 @@
const express = require('express');
const router = express.Router();
const { getWishlist, toggleWishlist } = require('../controllers/wishlistController');
const { protect } = require('../middleware/authMiddleware');
router.get('/', protect, getWishlist);
router.post('/toggle', protect, toggleWishlist);
module.exports = router;