Untitled
unknown
plain_text
5 months ago
1.1 kB
4
Indexable
exports.viewProductForDashboard = catchAsync(async (req, res, next) => { const productId = req.params.id; const result = {} if (!isValidObjectId(productId)) { return res.status(400).json({ message: 'Invalid product ID' }); } const pathsAndFields = [ { path: 'subcategories', select: 'subcategory' }, { path: 'categories', select: 'category' }, { path: 'groups', select: 'group' }, { path: 'brand', select: 'brand' }, { path: 'offer', select: ['discount', 'status'] } ]; // .populate(pathsAndFields).exec(); const product = await Product.findById(productId).populate(pathsAndFields) if (!product) { return next(new AppError('product not found', 400)); } result.product = product; if(product.isvariant == true){ const variants = await ProductVariant.find({_id:{$in :product.variants}}) .populate({ path: 'attributevalues',select:'value', populate: { path: 'attribute',select: 'attributeName' } }) result.variants = variants; } res.status(200).json({ message: 'Product fetched successfully', data: result }); });
Editor is loading...
Leave a Comment