Untitled
unknown
plain_text
a year ago
1.1 kB
6
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