Untitled

 avatar
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